Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅更新php mysql中选中的行_Php_Mysql_Checkbox_Rows_Multipleselection - Fatal编程技术网

仅更新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);



}

}