php - 使用复选框从 MySQL 数据库中删除行

标签 php mysql checkbox

我正在尝试从包含从 MySQL 表生成的数据的表中删除一行。我看了一下这两个问题: How to delete rows of database results using checkboxDeleting multiple rows using checkboxes, PHP and MySQL 。我理解这两个答案,但我遇到了一个问题。每个问题的复选框设置如下:

<input name="checkbox[<?php echo $row['id']?>]"

<input name="checkbox[]" type="checkbox" value="<?php echo $row['topic_id'];?>">

我无法在我的代码中使用其中任何一个,因为我的表是在 php 中生成的,并且在我的代码中使用括号和引号(确切地说是复选框名称或值属性)会在 Sublime 中引发语法错误。我想知道是否有任何解决方法?

这是我的表格的一部分:

<tbody>
    <?php
        $query = mysqli_query($db, "SELECT * FROM SOISInventoryList WHERE numInStock = 0 ORDER BY itemName");

        if(!$query){
            echo "Could not grab query.";
        }

        else{
            while($row = mysqli_fetch_assoc($query)){
                echo "<tr>";
                echo "<td class='strikeOut'>" . $row['itemName'] . "</td>";
                echo "<td class='strikeOut'>" . $row['numInStock'] . "</td>";
                echo "<td class='strikeOut'>" . "$" . $row['pricePerUnit'] . "</td>";
                echo "<td class='delete'>" . "<input type='checkbox' name='delete'>";
                echo "</tr>";
            }                                
        }
    ?>
</tbody>

感谢任何形式的帮助或建议。

最佳答案

您的语法问题(简而言之)来自于您使用 echo 命令单独打印 HTML 的每一行。对于您想要执行的任务类型,请尝试 alternative syntax

<?php while($row = mysqli_fetch_assoc($query)) : ?>
  <tr>
    <td class='strikeOut'> <?= $row['itemName'] ?> </td>
    (other TDs)
    <td class='delete'><input type='checkbox' name='delete[<?= $row['id']?>]'></td>
  </tr>
<?php endwhile ?>

以这种方式打印 HTML 可以省去很多麻烦(而且看起来更好)!

关于php - 使用复选框从 MySQL 数据库中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24943558/

相关文章:

php - 在 Windows 中安装 pThreads

mysql - 如何限制对 MySQL 中用户定义函数的访问

mysql - MySQL 结果中的关联值

php - 使用 PDO 对一个请求进行无缓冲查询

javascript - 将复选框绑定(bind)到 Angular 模型数组

php - 没有选择数据库 PHP

php - 如何在mysql中选择前10条记录

php - 如何使用服务器端处理将自定义列添加到数据表?

javascript - HTML/CSS 复选框文本与 <span> 或 <div> 对齐

javascript - 复选框列表的奇怪字母排序