Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除多个mysql行,但复选框不起作用_Php_Mysql - Fatal编程技术网

Php 删除多个mysql行,但复选框不起作用

Php 删除多个mysql行,但复选框不起作用,php,mysql,Php,Mysql,这是我的问题:我的代码没有任何错误,但我的问题是,当我单击“删除多个”按钮时,它什么都没有,甚至没有重新加载页面 注意:将_重定向到()我创建的函数,所以不要因为认为它是php函数或任何东西而感到困惑 PHP代码: display_errors(E_ALL); if(isset($_POST['muldelete'])) { $mul = $_POST['checkdelete']; $sql = "DELETE FROM cmarkers WHERE id = " . $mul; $re

这是我的问题:我的代码没有任何错误,但我的问题是,当我单击“删除多个”按钮时,它什么都没有,甚至没有重新加载页面

注意:
将_重定向到()我创建的函数,所以不要因为认为它是php函数或任何东西而感到困惑

PHP代码:

 display_errors(E_ALL);

if(isset($_POST['muldelete'])) {
$mul = $_POST['checkdelete'];

$sql = "DELETE FROM cmarkers WHERE id = " . $mul;
$result = mysqli_query($db, $sql);
redirect_to("elerts.php");
}
HTML代码:

 <form action="elerts.php" method="post">
<table class="table table-striped">
  <tr>
  <td> </td>
      <td>Date</td>
  <td>Comment</td>
  <td>Actions</td>
  </tr>
  <?php
  $sql = "SELECT * FROM cmarkers";
      $result = $db->query($sql);
  while ($row = mysqli_fetch_assoc($result)) {
  ?>
  <tr>
    <td><input type="checkbox" name="checkdelete[]" value="<?php echo $row['id']; ?>" /></td>
  <td><?php echo $row['date']; ?></td>
  <td><?php echo $row['comment']; ?></td>
  <td><a href="delete_elert.php?id=<?php echo $row['id']; ?>">Delete</a><a href="edit_elert.php?id=<?php echo $row['id']; ?>">Edit</a></td>
  </tr>


  <?php 
  }
  ?>
  <input type="submit" name="muldelete" value="Delete Multiple" />
</table>
</form>

日期
议论
行动
多谢各位


如果您需要更多信息,请告诉我您的按钮位于
标记之外,因此它与表单元素或表单方法完全无关。您不应该为每个复选框使用不同的表单,而应该用表单标记包围整个表,从而确保所有复选框和按钮的表单相同

<form method='post' action='elerts.php'>
    <table class="table table-striped">
        ...all your table data including checkboxes...
        <input type="submit" name="muldelete" value="Delete Multiple" />
    </table>
</form>

…所有表数据,包括复选框。。。

您的按钮位于
标记之外,因此它与表单元素或表单方法完全无关。您不应该为每个复选框使用不同的表单,而应该用表单标记包围整个表,从而确保所有复选框和按钮的表单相同

<form method='post' action='elerts.php'>
    <table class="table table-striped">
        ...all your table data including checkboxes...
        <input type="submit" name="muldelete" value="Delete Multiple" />
    </table>
</form>

…所有表数据,包括复选框。。。

我想是因为您关闭表单标签的时间早于提交按钮。 试着把整张桌子放进去,应该可以用了

PHP应该看起来像

 display_errors(E_ALL);

if(isset($_POST['muldelete'])) {
$mul = implode(',',$_POST['checkdelete']);

$sql = "DELETE FROM cmarkers WHERE id IN(" . $mul.")";
$result = mysqli_query($db, $sql);
redirect_to("elerts.php");
}

我认为是因为您关闭表单标签的时间比提交按钮的时间早。 试着把整张桌子放进去,应该可以用了

PHP应该看起来像

 display_errors(E_ALL);

if(isset($_POST['muldelete'])) {
$mul = implode(',',$_POST['checkdelete']);

$sql = "DELETE FROM cmarkers WHERE id IN(" . $mul.")";
$result = mysqli_query($db, $sql);
redirect_to("elerts.php");
}

首先,您的代码包含一些注意和放置错误

  • td外部
    之间的输入不正确
  • 如果按值生成一个表单,则不能进行多次删除 删除
修好它们

获取muldelete的数组

对于所有选中的输入,必须添加数组字段符号 将名称“muldelete”聚集到post数组中

<td><input type="checkbox" name="checkdelete[]" value="<?php $row['id']; ?>" /></td>
安全性

如果ID是整数值,则可以防止向sql查询中注入字符串

$mul = array_map(function($id)
{
   return intval($id);
}, $mul);

首先,您的代码包含一些注意和放置错误

  • td外部
    之间的输入不正确
  • 如果按值生成一个表单,则不能进行多次删除 删除
修好它们

获取muldelete的数组

对于所有选中的输入,必须添加数组字段符号 将名称“muldelete”聚集到post数组中

<td><input type="checkbox" name="checkdelete[]" value="<?php $row['id']; ?>" /></td>
安全性

如果ID是整数值,则可以防止向sql查询中注入字符串

$mul = array_map(function($id)
{
   return intval($id);
}, $mul);


您的提交按钮需要位于表单中才能触发表单操作。它不起任何作用,因为它只是位于任何表单外的一个按钮。因此,我需要为每行设置一个提交按钮@你试过调试它吗?你知道如何使用xdebug吗?没有@drupality我从来没有使用过它。你的提交按钮需要在表单中才能触发表单操作。它没有任何作用,因为它只是一个按钮,位于任何表单之外。所以我需要为每行设置一个提交按钮@你试过调试它吗?你知道如何使用xdebug吗?不知道@drupality我从未用过it@JackSmith因为您正在使用try to use或now,所以它会删除,但一次只删除一个@diaraf@JackSmith是的,因为您生成了多个同名复选框,只需使用谢谢请加入我的聊天:@JackSmith,因为您正在使用try to use或现在它会删除,但一次只删除一个@diaraf@JackSmith是的,因为您生成了多个同名复选框,只需使用“谢谢您请加入我的聊天室”即可:当您点击“删除多个复选框”时,页面现在是否刷新按钮?不要紧diaraf help me你可以在以下位置访问我的聊天室:但是谢谢你的帮助Yes当你点击“删除多个”按钮时,页面现在是否刷新按钮?不要紧diaraf帮助我你可以在以下位置访问我的聊天室:但是谢谢你的帮助是的谢谢你请在以下位置加入我的聊天室:请转到我发送的聊天室谢谢你的帮助谢谢你请在以下位置加入我的聊天室:请转到我发送的聊天室谢谢你的帮助