如果更新查询后语句不起作用

时间:2016-06-22 20:31:46

标签: php mysql

我正在构建一个迄今为止非常棒的邮件系统。但是,我仍然坚持删除邮件"一部分。

在我的数据库中,我有2列(recdel和senddel),它们响应true或false。 每当用户按下"删除"它会根据发件人或配方将列更新为true,并将其从正确的人员收件箱中隐藏。 如果配方和发件人都已按下删除,我想将其从数据库中删除,如果双方都已将其删除,则无需将其删除。

当双方都按下删除时,问题就出现了,其中一方必须再次按删除才能从数据库中删除(删除隐藏部分以进行测试)。

问题似乎是if语句,它不会继续更新查询后的第三个if语句,直到两个列都为真,然后当第三次按下删除时,它会移动到第三个if语句。

我还尝试将第三个if语句放在2个第一个if语句中,但仍然遇到同样的问题。

有什么想法吗?

if(person == sender) {
    $query = 'UPDATE `email` SET `senddel`="true" WHERE `id`='.$id.'';
}

if(person == recipent) {
    $query = 'UPDATE `email` SET `recdel`="true" WHERE `id`='.$id.'';
}

if(recdel == 'true' && senddel == 'true'){
    delfromdb
}

2 个答案:

答案 0 :(得分:0)

分配到数据库中的列不会自动更新PHP变量。您需要执行另一个SQL查询:

$query = 'DELETE FROM email WHERE recdel = "true" and senddel = "true" AND id = $id';

答案 1 :(得分:0)

这些行为并非同时发生。因此,您不会触发该陈述为真。

我认为您的方案只有在发件人向自己发送电子邮件时才有效。

您需要更多条件,如果"语句检查recdel / senddel的状态,与发送者或接收者无关。