2015-09-09 126 views
-1

我試圖刪除我的數據庫中的某些行,不管它們是否通過單擊它們的複選框進行選擇。我使用PK,一個自動遞增的ID來標識選擇哪一行,刪除它。但我沒有刪除它。任何幫助請..我的語法有什麼問題。根據選中的複選框從數據庫刪除行

$conn = new PDO('mysql:host=localhost;dbname=jr', 'root', 'Js'); 
    $conn->exec("set names utf8"); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $num_rows = $conn->query('SELECT COUNT(*) FROM employees')->fetchColumn(); 


    $stmt = $conn->prepare("SELECT appendtest.ID,appendtest.EvaluationType,appendtest.EvaluatorAF,appendtest.EvaluatedAF FROM appendtest"); 
    $stmt->bindParam(':start', $pages->limit_start, PDO::PARAM_INT); 
    $stmt->bindParam(':end', $pages->limit_end, PDO::PARAM_INT); 
    $stmt->execute(); 
    $result = $stmt->fetchAll(); 

    $selectedtable = "<table class='sortable'><tr><th>Select</th><th>Evaluation Type</th><th style='width:200px'>Evaluator AFNumber</th><th style='width:150px'>Evaluated AFNumber</th></tr>\n"; 



    foreach($result as $row) { 



     $selectedtable .= "<tr><td><input type='checkbox' name='del' value='$row[0]' style='margin:10px;'></td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td></tr>\n"; 



    } 
    if(isset($_POST['del'])) 
      { 

       $sql="DELETE FROM appendtest WHERE id = '$row[0]'"; 
       mysqli_query($con,$sql); 

     } 
    $selectedtable .= "</table>\n"; 
     $selectedtable .= "<input type='submit' name='del' value='Delete' style='width:80px; height:30px; text-align:center; padding:0px;'>\n"; 
+0

你說的*意味着無法刪除它*? – D4V1D

+0

@ D4V1D這不起作用 – dan

+0

那麼,你的意思是*它不工作*? – D4V1D

回答

0

首先,從

<input type='checkbox' name='del' value='$row[0]' style='margin:10px;'> 

改爲

<input type='checkbox' name='del[]' value='$row[0]' style='margin:10px;'> 

,並更改提交不是 '德爾' 別的東西,如例如 '子'

然後更改的名稱行動到:

if ($_POST['sub'] && count($_POST['del']) > 0) { 
    $ids = implode(',', $_POST['del']); 
    $sql = "DELETE FROM appendtest WHERE id IN ('$ids')"; 
    mysqli_query($con, $sql); 
} 

如果你想添加一些安全的事情要做:

$ids = implode(',', array_map('intval', $_POST['del'])); 
+0

它沒有工作的人 – dan

+0

該代碼是在

? –

+0

是的。我得到未定義的索引爲子,但我更改了提交按鈕的名稱 – dan

0

HTML複選框代碼

<form method="post" action="filename.php" > 
<input type='checkbox' name='del[]' id='del[]' value='$row[0]' style='margin:10px;'> 
<input type="submit" name="submit" value="submit" > 
</form> 

PHP代碼

if(isset($_POST['submit'])) 
{ 
    $checkbox = $_POST['del']; 

    for($i=0;$i<count($checkbox);$i++) 
    { 
     $id = $checkbox[$i]; 

     $sql1 = "DELETE FROM `tablename` WHERE `id` =' $id' "; 
     mysqli_query($con, $sql1) ; 
    } 
} 
相關問題