我无法使条件:cart_locked==0 &&cart_archive==0 起作用。所有内容在页面重新加载 30 分钟后删除



我有这段代码没有遵循我想要的条件:所有在页面重新加载时被删除。

//START CONDITION TO DELETE OLD CARTS
//TASK -> Delete OLD CART  that is NOT FINISHED from database automatically after 30 min
//CONDITION 1 -> Delete OLD CART if cart_locked == 0 && cart_archive==0 ( both conditions must be true.)
//CONDITION 2 -> Do not delete the OLD CART if cart_locked == 1 && cart_archive==0
//CONDITION 3 -> Do not delete the OLD CART if cart_locked == 0 && cart_archive==1

$cart_condition = DB::query ( "SELECT cart_locked,cart_archive FROM cart_details" ); //OK
foreach ($cart_condition as $row) {
$cart_locked = $row[ 'cart_locked' ];
$cart_archive = $row[ 'cart_archive' ];
}

//DELETE anything from cart_details if cart_locked==0 && cart_archive==0,  both conditions must be true.
//mysql_server is local time of server (datetime) where cart is created this is the time that trigger the +30 minutes deletion after reload.

if (($cart_locked == 0 ) && ($cart_archive == 0 )) {
DB::query ("DELETE FROM cart_details WHERE `mysql_server` < NOW() - INTERVAL 30 MINUTE ");
}

//问题:我不能使我想要的条件能够正常工作。不管我怎么做,cart_details表中的All在30分钟后被删除。page reload
如果cart_locked == 1 &&cart_archive = = 0,在
如果cart_locked == 0 &&cart_archive = = 1——比;
如果cart_locked == 0 &&cart_archive = = 0,在所有应该删除在30分钟页面重新加载,这就是我想在这里实现的。

谢谢你的帮助。

你在做一些你根本不需要做的事情。

你的代码正在检索一个没有标识符的值列表,然后你在结果集上迭代,大概是为了删除你在第一个查询中检索的行。

你的代码根本做不到这一点。

无论如何,没有必要。迭代结果集以基于该数据运行单个查询几乎总是不必要的。您可以通过一个查询执行整个操作:

//START CONDITION TO DELETE OLD CARTS
//TASK -> Delete OLD CART  that is NOT FINISHED from database automatically after 30 min
//CONDITION 1 -> Delete OLD CART if cart_locked == 0 && cart_archive==0 ( both conditions must be true.)
//CONDITION 2 -> Do not delete the OLD CART if cart_locked == 1 && cart_archive==0
//CONDITION 3 -> Do not delete the OLD CART if cart_locked == 0 && cart_archive==1
DB::query ("DELETE FROM cart_details WHERE (`mysql_server` < NOW() - INTERVAL 30 MINUTE) and (`cart_locked` = 0) and (`cart_archived` = 0) ");

注意:我对mysql_server列不确定。它真的包含与购物车相关的DateTime值吗?你肯定能想出一个更好的名字!

最新更新