Я пытаюсь обновить сразу двенадцать строк. Я искал различные способы сделать это, но никто из них не работал со мной. Я не вижу никаких действий, когда я нажимаю «Отправить». Может кто-нибудь помочь мне найти то, что плохая в ниже сценарии:Обновление нескольких строк с использованием одной формы
<?php
include 'connection.php';
$sql="SELECT * FROM tbl_maint_track1";
$result=mysql_query($sql);
// Count table rows
$count=mysql_num_rows($result);
$sno = array();
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>S No</strong></td>
<td align="center"><strong>Qty</strong></td>
<td align="center"><strong>Maint Catgry</strong></td>
<td align="center"><strong>Uprice</strong></td>
<td align="center"><strong>Tprice</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $sno[]=$rows['sno']; ?><? echo $rows['sno']; ?></td>
<td align="center"><input name="qty[]" type="text" id="qty" value="<? echo $rows['qty']; ?>"></td>
<td align="center"><input name="maint_catgry[]" type="text" id="maint_catgry" value="<? echo $rows['maint_catgry']; ?>"></td>
<td align="center"><input name="uprice[]" type="text" id="uprice" value="<? echo $rows['uprice']; ?>"></td>
<td align="center"><input name="tprice[]" type="text" id="tprice" value="<? echo $rows['tprice']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
$sno = $_POST['sno'];
$qty = $_POST['qty'];
$maint_catgry = $_POST['maint_catgry'];
$uprice = $_POST['uprice'];
$tprice = $_POST['tprice'];
// Check if button name "Submit" is active, do this
if(isset($_POST["$Submit"])){
for($i=0;$i<$count;$i++){
$sql1= "UPDATE tbl_maint_track1 SET qty = '{$qty[$i]}', maint_catgry = '{$maint_catgry[$i]}', uprice = '{$uprice[$i]}', tprice = '{$tprice[$i]}' WHERE sno = '{$sno[$i]}' ";
$result1=mysql_query($sql1);
}
}
if($result1){
echo "Thanks, $count records updated";
}
else
{
echo "No record updated";
}
close_conn();
?>
есть лучший способ обновить несколько записи с одной формой?
Заранее спасибо.
Спасибо, Дэвид за ответ. Я буду использовать mysql_real_escape_string, как только будут решены другие проблемы. Как вы полагаете, я поставил [$ i] в цикле, но все же он не переносит изменения в таблицу. Есть ли что-то еще, препятствующее передаче данных? –
Возможно, попробуйте обновленный синтаксис, где вместо синтаксиса {} вы просто используете. оператора, чтобы присоединиться к строкам. – davidethell
Я обновляю запрос с помощью синтаксиса выше, однако он все еще не работает. Любое другое предложение? –