检查数据库存储包括会话PHP中的相同单元

时间:2009-12-03 23:41:18

标签: php

我正在尝试在购买之前检查sessionbasket(并检查数据库存储是否包含来自会话的相同单位)

foreach($_SESSION['cart'] AS $key => $qty){
    $sizes_id[] = $qty['units'];
}

会话输出:

Array(
    [0] => 1 (units)
    [1] => 5 (units)
)

假设db中有最多2个单元,会话中有5个单元。我需要遍历数据库并检查会话是否是相等的会话输出。如果为true,则插入到db else,重定向前面

3 个答案:

答案 0 :(得分:1)

按降序对单位数组进行排序。

然后按降序从数据库中获取单位。应该给你相同的阵列。这是一个类似于您需要的查询:

SELECT id, units FROM article_sets WHERE article_id=XXX ORDER BY units DESC

答案 1 :(得分:0)

  

我需要遍历数据库   并检查会话是否是平等会话   输出。如果为true,则插入到db else,   重定向前方

听起来你知道自己想做什么。

那你在问什么?你想让别人为你编码吗?

答案 2 :(得分:0)

我找到了解决方案。

        foreach ($_SESSION['cart'] AS $sizes_id => $qty){

            $in_stock = $db->GetScalar("SELECT s.units FROM products_sizes s 
                                        INNER JOIN products p ON p.product_id = s.product_id
                                        WHERE s.id = '$sizes_id'
            ");             
     }

这是我正在寻找的部分,它有效 - >

     if ($in_stock == 0 || $_SESSION['cart'][$sizes_id]['units'] > $in_stock){