2015-09-07 67 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

有沒有錯誤先生我已經嘗試過太多次檢查錯別字了...... –