【问题标题】:Delete multiple rows using checkbox from mysql table using PHP使用PHP从mysql表中使用复选框删除多行
【发布时间】:2019-08-24 11:05:06
【问题描述】:

我希望在通过复选框选中一行或多行时将其删除。但即使我选择它似乎也不会删除任何东西。

这是我想出的:

<?php
$con=mysqli_connect("localhost","root","","annualdb");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM asean_japan WHERE agency='Air'");

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

  for($i=0;$i<count((array)$checkbox);$i++) {
    $del_id = $checkbox[$i];
    $sql = "DELETE FROM asean_japan WHERE id='$del_id'";
    $result = mysqli_query($con,$sql);
  }
// if successful, refresh same page 
if($result) {
  echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
}
}
?>
<table class='page'>
  <tr>
    <th>Select</th>
    <th>Agency</th>
    <th>FileName</th>
    <th>FileType</th>
    <th>Date Received</th>
    <th>Action</th>
  </tr>
<?php
while($row = mysqli_fetch_array($result))
{
  ?>
  <tr>
    <td align='center' bgcolor='#FFFFFF'><input name='checkbox[]' type='checkbox' value='<?php echo $row['id']; ?>'></td>
    <td><?php echo $row['agency']; ?></td>
    <td><?php echo $row['filename']; ?></td>
    <td><?php echo $row['filetype']; ?></td>
    <td><?php echo $row['date']; ?></td>
    <td><a target='_blank' href='../annual/indicators/" <?php echo $row['filename']; ?>"'>OPEN</a></td>
  </tr>
</table>

<?php
}
?>
<tr>
  <td colspan="4" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" value="Delete"></td>
</tr>
<?php
mysqli_close($con);
?>

我的复选框或 input=delete 是否有问题?

【问题讨论】:

  • 你做了调试吗?即你在 $_POST['checkbox'] 中得到了什么?您的 $del_id 是否获得特定的选中复选框值?每当您提出问题时,请进行调试,以便发现实际问题
  • 是的,我试过调试,没有出现错误。但也没有结果。它不会删除任何东西

标签: php html mysql mysqli


【解决方案1】:

首先你需要在while循环之外关闭表格标签,然后你需要检查onclick你的数据帖子是否指向url click here this will help you

【讨论】:

    【解决方案2】:
        foreach($_POST['checkbox'] as $key =>$val) {
            if($val!='') {
                 $sql = "DELETE FROM asean_japan WHERE id='$val'";
                 $result = mysqli_query($con,$sql);  
            }
        }
    

    【讨论】:

    • 我想你错过了表单标签
    • php 新手,但我知道当复选框不为空或选中时,此代码会删除行?但它仍然没有做任何事情。不知道为什么
    • .......
      提交按钮
    • 请在您的代码中添加一些解释,以便其他人可以从中学习。此外,请查看 SQL 注入 - 您的代码极易受到攻击,不应在生产环境中使用!
    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 2014-02-16
    • 2014-07-18
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    相关资源
    最近更新 更多