2015-09-07 78 views
0

我想只更新检查表中的行,但什么也没有发生 这里是我的代码更新检查行PHP的MySQL

<?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> 
+0

你错过这里下划线'$ POST' –

回答

0

可以使用MySQLIN功能更新所有数据集在一个查询。所以你不需要使用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注入(参见PDO

之间的HTML属性,你还应该加上一个空格:name='name[]' value=,而不是name='name[]'value=

+0

我增加了空间,我也加入了上述行,但什么也没发生的验证状态字段在数据库 –

+0

莫非不改变值你可以在你的代码中添加'echo $ qry;'并检查例如生成的查询'phpMyAdmin'? –

+0

我想迭代,因为我想在一次更新多行是否有意义? –

1

您还得到了一个错字:is_array($POST['name'])应该是is_array($_POST['name'])

1
$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); 
} 
+0

我已经检查了这个答案但是不起作用 –

0
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); 



} 

} 
+0

它不起作用 –

+0

你得到了什么错误? –

+0

有没有错误先生我已经尝试过太多次检查错别字了...... –