PHP & MySQL 函数从数据库问题中删除未检查的类别

标签 php mysql

我有一个 PHP 函数,允许用户选择帖子应该显示在哪些类别中。我希望能够在用户取消选中复选框时从数据库中删除他们选择的类别。但我尝试的一切似乎都删除了所有用户类别或根本不起作用。有人可以帮我解决这个问题吗?

这是我的 PHP 函数的一部分,它应该删除未选中的类别。

for ($x = 0; $x < count($query_cat_id); $x++){
    if($query_cat_id[$x] == $cat['id']){
        echo 'checked="checked"';
    } else if(!isset($query_cat_id[$x])) {
        $mysqli = mysqli_connect("localhost", "root", "", "sitename");
        $delete_id = mysqli_query($mysqli,"DELETE FROM posts_categories WHERE post_id = '" . $post_id . "'");
        if (!$delete_id) {
            print mysqli_error($mysqli);
        }
    }
}

最佳答案

此查询正在从您的帖子中删除所有类别,因为您告诉它使用 where 子句。您实质上是在说,从表 posts_categories 中删除每条具有帖子 id = $post_id 的记录。您需要添加到您的 where 子句以使其更具体。

$delete_id = mysqli_query($mysqli,"DELETE FROM posts_categories WHERE post_id = '" . $post_id . "' AND categoryID = '". $query_cat_id[$x] ."'");

现在这与您所做的相同,但添加了一个额外的限定词。仅从表中删除 post_id 为 $post_id 且类别 ID 为(未选中复选框的值)的行。

免责声明:我正在猜测您在函数 ($query_cat_id[$x]) 中存储类别 ID 的位置。

关于PHP & MySQL 函数从数据库问题中删除未检查的类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543904/

相关文章:

php - 将 2 个 mysql 查询合并为 1

php - 未调用 PayPal 订阅/Notify_URL(在沙盒下工作)

php - 如何执行这种类型的 MySQL 查询 - 基于 3 个表选择数据?

mysql - 从子查询组中选择最大值

php - MySql JOIN 查询中按日期排序

mysql - 将 4 字节 unicode 字符插入 MySQL/MariaDB

mysql - 索引限制使用表的规则 - MySQL

PHP:在带有 MYSQL 的 MDB2 中的字符串上使用 quote()

php - yii2 session 错误

php - mysql错误内连接