删除使用SQL(邮箱系统)乘以ID

时间:2014-02-14 21:06:40

标签: php sql mysqli

<form method="post">
  <?php
  $sql = "SELECT * FROM test2 ORDER by id ASC"; 
  $result = mysqli_query($conn, $sql) or die(mysql_error());

  while($row = mysqli_fetch_assoc($result))
  {
      echo '<table><tr>';
      echo '<td><input type="checkbox" id="'.$row['id'].'" name="id" value="'.$row['id'].'"></td>';
      echo '<td class="cEmne">'.$row['emne'].'</td>';
      echo '<td class="cBesked">'.$row['besked'].'</td>';
      echo '</tr></table>';       
  }

  if(isset($_POST['submit'])){
    $id = $_POST['id'];
    $sql = "DELETE FROM test2 WHERE id='$id'";
    mysqli_query($conn, $sql);

    echo "<script>window.location.href = 'index.php'</script>";
  }
  ?>
  <input type="submit" name="submit" id="submit" value="slet">

</form>

它只删除我检查过的第一个复选框。

我想删除所有选中的复选框。

2 个答案:

答案 0 :(得分:2)

对字段使用name[]表示法:

echo '<td><input type="checkbox" id="'.$row['id'].'" name="id[]" value="'.$row['id'].'"></td>';
                                                              ^----here

然后迭代$_POST['id']作为数组并删除每条记录或使用where id in - 语句。

答案 1 :(得分:0)

您需要将$_POST的结果作为字符串,请执行以下操作:

$idList = implode ("','", $_POST['id']);
$sql = "DELETE FROM test2 WHERE id IN ('$idList')";