2017-06-23 55 views
0

我試圖從表中刪除一行中從MySQL表中生成的數據。我看了這兩個問題: 1.如何使用複選框刪除數據庫結果行 2.使用複選框,PHP和MySQL刪除多行。使用複選框從MySQL數據庫中刪除

我需要幫助的代碼刪除使用複選框..

<?php 

$sql = mysqli_query($conn, "SELECT * FROM leads ORDER BY lid ASC"); 
if(mysqli_num_rows($sql) == 0){ 
    echo '<tr><td colspan="8">No Data Entry</td></tr>'; 
}else{ 
    while($row = mysqli_fetch_assoc($sql)){ 
     echo '<tr> 
       <td> <input name"checkbox[]" value"'.$row['lid'].'" type="checkbox"></td> 
       <td>'.$row['name'].'</td> 
       <td>'.$row['sex'].'</td> 
       <td>'.$row['phone'].'</td> 
       <td>'.$row['company'].'</td> 
       <td>'.$row['vehicle'].'</td> 
      </tr>'; 
     } 
    }?> 

取消

<?php 

    $del_lid = $_POST['checkbox']; 
    if (isset($_POST['submit'])) { 
    foreach($del_lid as $value){ 
     $sql = "DELETE FROM leads WHERE lid='".$value."'"; 
     $result = mysqli_query($conn, $sql); 
    } 
} 
?> 
+0

讚賞任何形式的幫助或建議。謝謝.... – zak

+3

從'value''缺少一個等號'。'row''lid']。'「' – RamRaider

+0

你面臨的問題在哪裏? – JYoThI

回答

2

的複選框失蹤等號如此有效地他們都沒有的值。 sql可以簡化爲使用in運算符而不是循環。

<table> 
<?php 

    $sql = mysqli_query($conn, "SELECT * FROM leads ORDER BY lid ASC"); 
    if(mysqli_num_rows($sql) == 0){ 
     echo '<tr><td colspan="8">No Data Entry</td></tr>'; 
    }else{ 
     while($row = mysqli_fetch_assoc($sql)){ 
      echo ' 
      <tr> 
       <td> <input name="checkbox[]" value="'.$row['lid'].'" type="checkbox"></td> 
       <td>'.$row['name'].'</td> 
       <td>'.$row['sex'].'</td> 
       <td>'.$row['phone'].'</td> 
       <td>'.$row['company'].'</td> 
       <td>'.$row['vehicle'].'</td> 
      </tr>'; 
     } 
    } 
?> 
     </table> 
     <input type="submit" name="delete" class="btn btn-sm btn-primary" value="delete"> 
     <a href="index.php" class="btn btn-sm btn-danger">Cancel</a></td> 
    </form> 
</div> 
<?php 

    $del_lid = $_POST['checkbox']; 

    if (isset($_POST['submit'])) { 
     $sql='delete from `leads` where `lid` in (' . implode(',', $del_lid). ')'; 
     $result = mysqli_query($conn, $sql); 
    } 
?> 
+0

如何使用SQL注入保護:'$ del_lid = array_map('intval',$ _ POST ['checkbox']);' – Adder

+0

真 - SQL注入是一個問題 - 準備好的語句會更好,但'array_map'函數電話是一個很好的呼喊! – RamRaider

+0

你好Ram我仍然收到一個錯誤注意:未定義的索引:複選框在C:\ xampp \ htdocs \ mysqlicrud \ leads.php在第49行這行=> $ del_lid = $ _POST ['checkbox']; – zak

相關問題