我无法满足条件: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_locked == 1 && cart_archive == 0 --->
如果在cart_locked == 0 && cart_archive == 1 ---> 30分钟页面重装什么都不会删除,则所有内容都会从cart_details表中删除没有什么应该在30分钟重新加载页面删除,
如果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值吗?当然,您可以想到一个更好的名字!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档