php - 删除不在数组中的数据库条目

标签 php mysql sql-delete

我有一个数组,可以获取复选框数据,如果复选框数据不是数据库中已有内容的副本,则将某些信息发布到数据库中。我想知道的是如何创建一个代码来扫描数据库并找到不属于我的复选框数据的数据并将其从数据库中删除。

好吧,例如,假设我的数据库中有值 1,2,3,4,但在我的复选框中我只返回 1,2,4。我想要一个代码来扫描我的数据库并从数据库中删除该值(在本例中为 3)。

这是我当前的代码:

foreach($_POST['publish'] as $index => $val){
$matches = mysql_query("SELECT * FROM `$blog_table` WHERE `postID` = '$val");
    if (mysql_num_rows($matches) > 0)
    {
        // do nothing
    } else {
    $query3 = "insert into `$blog_table`
                     (`postID`)values 
                     ('$val')";
    mysql_query($query3);   
    }
}

最佳答案

这是我将用于转义输入的代码

if (!empty($_POST['publish']))
{
    $inserts = array();
    $deletes = array();
    foreach ($_POST['publish'] as $val)
    {
        $deletes[] = intval($val);
        $inserts[] = '('.intval($val).')';
    }
    $delete = "DELETE FROM `".$blog_table."` WHERE postID NOT IN (".implode(',',$deletes).");";
    $insert = "INSERT INTO `".$blog_table."` (`postID`) VALUES ".implode(',',$inserts)."";
}

关于php - 删除不在数组中的数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9639006/

相关文章:

php - 如何从 phpmyadmin 中的表中删除电子邮件地址

php - MYSQL 如果两个条件匹配则从两个表中计数

mysql - 在另一个表中按日期选择最后一个值

sql - 删除行和特定条件

php - SQL事务和表SELECT LOCK说明

php - 覆盖Genesis单页模板?

php - 我的 Wordpress 插件应该创建分层 URL,怎么做?

MySQL:显示自帐单日期过去多少天以来的总会费

varchar 字段上的 SQL 连接超时

mysql - 如何从 MySQL 数据库中删除重复的行/