これは私のcustomers_basket
テーブルがどのように見えるかです:
customers_id | products_id | basket_quantity
3 | 56:3121fefbe6043d6fc12e3b3de2c8fc38 | 3
3 | 56:fb4c9278fcfe6225b58c06711a7e62ef | 1
3 | 56:8e334fce09556108f5416e27154b6c27 | 1
3 | 52:f3b9f38e4ddd18035bc04cd264b0f052 | 1
これは私が使用しているクエリです:
$products_in_cart_query = "SELECT products_id FROM customers_basket WHERE customers_id = " . $_SESSION['customer_id'] ."";
$products_in_cart = $db->Execute($products_in_cart_query);
$products_in_cart_model = $products_in_cart->fields['products_id'];
$products_in_cart_model = substr($products_in_cart_model, 0, strpos($products_in_cart_model, ":"));
私が得る最終結果は56,56,56,52です
まず、最初の行の数量フィールドをどのように使用しますか? 数量が 3 であるため、products_id を 3 回リストする必要があります。したがって、最終結果は次のようになる必要があります。 56,52
2 番目に、同じ値がいくつあるかをどうやって数えますか? この場合、5x56 と 1x52 があります。今後の計算では、これらのカウントを使用する必要があります。
編集:さらに計算を説明すると、私が持っている各product_idの数を知る必要があり、次のようなものを実行する必要があります:
foreach(product_id) {
$shipping_cost += FIXED_VALUE * basket_qty;
}