繁体   English   中英

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

[英]Delete Rows from MySQL Database Using Checkboxes

我正在尝试使用MySQL表生成的数据从表中删除一行。 我看了两个问题: 如何使用复选框 删除 数据库结果行,以及如何 使用复选框PHP和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>

任何形式的帮助或建议,都应表示赞赏。

您不必将自己与那里使用的确切语法联系在一起。 您可以轻松地将整个数组传递给JavaScript,并在页面上呈现出来。 最后,您真正需要的每个复选框是“是否已选中”,如果是,则“分配给它的ID是什么?”。

然后,当您将其发布回PHP时,可以确定如何处理该信息。 例如,删除具有该ID的行。

语法问题(简而言之)是由于您正在使用echo命令单独打印出每一行HTML而引起的。 对于您要执行的任务类型,请尝试使用其他语法

<?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可以省去很多麻烦(而且看起来更好)!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM