Привет,
У меня есть следующий код
<?
include("conn.php");
$sn=$_GET["sn"];
$sql = "select * from kpi where no='$sn'";
$result=mysql_query($sql,$connection) or die(mysql_error());
while($row=mysql_fetch_array($result)) {
$sn=$row['id'];
$no=$row['no'];
$pdetails=$row['pdetails'];
$kpistatus=$row['kpistatus'];
$status=$row['status'];
$cols=$row['cols'];
$rows=$row['rows'];
}
?>
<form name = "form1" method = "post" action = "formsubmit.php?mode=addtable">
<table width = "100%" border = "1" align = "center" cellpadding = "2" cellspacing = "2">
<tr>
<td colspan = "2"><strong>Add Table</strong></td>
</td>
</tr>
<tr>
<td>NO</td>
<td><input name = "no" type = "text" id = "no" value = "<? echo $no; ?>"></td>
</tr>
<tr>
<td>PROJECT DETAILS</td>
<td><textarea name = "pdetails" rows = "10" cols = "100"><? echo $pdetails; ?></textarea></td>
</tr>
<tr>
<td>KPISTATUS</td>
<td>
<?
echo "<table border=\"1\" align=\"left\">\n";
$j=0;
while ($j < $rows)
{
echo "<tr>\n";
$i=0;
while ($i < $cols)
{
?>
<td><input type = "text" name = "kpistatus" id = "kpistatus"></td>
<?
$i++;
}
echo "</tr>\n";
$j++;
}
echo "</table>\n";
?>
</td>
</tr>
<tr>
<td>STATUS</td>
<td><textarea name = "status" rows = "10" cols = "100"><? echo $status; ?></textarea></td>
</tr>
<tr>
<td colspan = "2"><input type = "submit" name = "Submit" value = "ADD TABLE"></td>
</tr>
</table>
</form>
elseif ($mode= = "addtable") {
$no=$_POST["no"];
$pdetails=$_POST["pdetails"];
$kpistatus=$_POST["kpistatus"];
$status=$_POST["status"];
$sn=$_POST["id"];
$sql = "update kpi set pdetails='$pdetails',kpistatus='$kpistatus',status='$status' where no='$no'";
//echo $sql;
$result=mysql_query($sql,$connection) or die(mysql_error());
//header("location: index.php");
}
?>
Скриншот формы: http://img395.imageshack.us/my.php?image=1226818203913yi6.png
Пользователи могут ввести, сколько строк и столбцов им нужно для вставки данных. На скриншоте мои строки - 10, а столбец - 5.
Теперь, когда я застрял, как я могу убедиться, что все введенные данные в <input type = "text" name = "kpistatus" id = "kpistatus"> сохранить в таблице kpistatus mysql ..
Помогите мне, пожалуйста.
Спасибо.






Если вы поместите квадратные скобки в имя input, php автоматически превратит их в массив для вас в массиве сообщений. Затем вы можете просто выполнить итерацию и сохранить их по мере необходимости. В вашей форме вы бы поместили
<input type = "text" name = "kpistatus[]" id = "kpistatus">
(Обратите внимание на добавление двух скобок).
Затем в коде обработки формы у вас будет $_POST['kpistatus'] в виде массива. Вы можете использовать функцию PHP implode, чтобы превратить это в список, разделенный запятыми, выполнив что-то вроде implode(',', $_POST['kpistatus'].
Небольшое примечание:
В вашем коде вам нужно использовать mysql_real_escape_string для всех ваших переменных, прежде чем вы их вставляете. В противном случае пользователь мог бы ввести код SQL в один из входов и иметь возможность делать все, что хотел (это называется SQL-инъекцией).
Представьте, что произошло бы, если бы кто-нибудь заключил в строку статуса одинарную кавычку. В лучшем случае это вызовет ошибку, в худшем они могут перезаписать или стереть ваши данные.
Извините, если это очевидно для вас, но я просто хочу не забыть об этом.