仅更新php mysql中选中的行
我试图只更新表中的选中行,但什么都没有发生 这是我的密码仅更新php mysql中选中的行,php,mysql,checkbox,rows,multipleselection,Php,Mysql,Checkbox,Rows,Multipleselection,我试图只更新表中的选中行,但什么都没有发生 这是我的密码 <?php //database connect select $result=mysql_query("Select * from ticket_reservation WHERE validate_status='No'") or die(mysql_error()); while($row=mysql_fetch_array($result)) { echo "<
<?php
//database connect select
$result=mysql_query("Select * from ticket_reservation WHERE
validate_status='No'") or die(mysql_error());
while($row=mysql_fetch_array($result))
{
echo "<tr><td><input type='checkbox' id='name' name='name[]'value=".$row['id']."</td><td>".$row['userid']."</td> <td>".$row['busid']."</td><td>".$row['numberofseats']."</td></tr>";
echo "<br>";
}
echo"<tr><td><input type='submit' name='submit' Value='Validate Tickets'> </td></tr>";
if(isset($_POST['submit']))
{
if(is_array($_POST['name']))
{
$qry = "UPDATE ticket_reservation SET validate_status='Yes' WHERE id IN (".implode(',', $_POST['name']).")";
// echo $qry; // For checking the generated sql statement; can be removed
mysql_query($qry);
}
}
?>
</table>
</form>
您可以使用MySQL
函数在一个查询中更新所有数据集。因此,您不需要使用foreach
循环迭代所有ID
if(isset($_POST['submit']))
{
if(is_array($_POST['name']))
{
$qry = "UPDATE ticket_reservation SET validate_status='Yes' WHERE id IN (".implode(',', $_POST['name']).")";
echo $qry; // For checking the generated sql statement; can be removed
mysql_query($qry);
}
}
为了防止SQL注入,您应该使用准备好的语句(请参阅)
您还应该在HTML属性之间添加一个空格:name='name[]'value=
而不是name='name[]'value=
这里还有一个输入错误:is_数组($POST['name'])
应该是is_数组($POST['name'])
$checkbox=$POST['name'];
对于($i=0;$iI添加了空格,我也添加了上面的行,但没有发生任何事情validate status字段不会更改数据库中的值。请将echo$qry;
添加到您的代码中,并检查生成的查询,例如phpMyAdmin
?我正在尝试迭代,因为我想一次更新多行doe这是有意义的吗?代码echo$qry不会生成任何输出…@BilalZia我的示例也会更新多行。我已经更新了我的答案,以便您可以看到必须在哪里更新sql语句以及在哪里添加echo$qry;
。我已经检查了这个答案,但不起作用。您在这里缺少下划线$POST
Wh你有错吗?没有错,先生,我已经试了很多次了,检查打字错误。。。
$checkbox=$_POST['name'];
for($i=0;$i<count($checkbox);$i++)
{
$id = $checkbox[$i];
$sql1 = "UPDATE ticket_reservation set validate_status='Yes' where id = '".$id."' ";
mysql_query($sql1);
}
if(isset($_POST['name']))
{
$Name=$_POST['name'];
foreach($Name as $N)
{
$qry="Update ticket_reservation SET validate-status='Yes' Where id='$N'"; echo $qry; // For checking the generated sql statement; can be removed
mysql_query($qry);
}
}