簡體   English   中英

如何選擇會話數組和數據庫項目進行檢查

[英]how to select session array and database item to check

我有一個會話數組,即$ _SESSION ['cart_array']並且該數組包含

Array ( [0] => Array ( [item_id] => qwerty [quantity] => 1 [unit_price] => 500 ) [1] => Array ( [item_id] => skjbm [quantity] => 2 [unit_price] => 100 ) )

現在我使用SQL查詢將此數組插入數據庫中..我的查詢是

$insert_query = 'INSERT INTO product_added (id,order_id,email,item_id,unit_price,quantity,total,pay_status) values ';foreach($_SESSION['cart_array'] as $each_item){ 

$insert_query .= "('','$OrderId','','".$each_item['item_id']."','".$each_item['unit_price']."','".$each_item['quantity']."','".$each_item['unit_price']*$each_item['quantity']."',''),";}$query = rtrim($insert_query, ',');if(mysql_query($query)){echo 1;}else{
echo 0;}

我的數據庫條目記錄是

item_id unit_price quantity
qwerty      500       1
skjbm       100       2

到現在為止還可以.....現在用戶更新現有item_id的數量,新數組為

Array ( [0] => Array ( [item_id] => qwerty [quantity] => 5 [unit_price] => 500 ) [1] => Array ( [item_id] => skjbm [quantity] => 6 [unit_price] => 100 ) )

如果購物車中發生任何堵塞,我該如何檢查當前會話中數據庫中現有的數據條目並更新特定item_id的數量。

在插入之前,只需通過商品ID判斷特定數據是否存在。 則表中不存在數據,請執行insert,否則請更新操作。 以下是我的簡短代碼供您參考。

<?php

$cart_array = $_SESSION['cart_array'];;
$item_ids = array();
if ($cart_array) {
  foreach ($cart_array as $k => $v) {
    $item_ids[$v['item_id']] = 1;
   }
 }

//before insert do a check
$qry = sprintf("SELECT * FROM product_added WHERE id in (%s)",          implode(',', $item_ids));
$result = mysql_query($qry);
$existing_item_ids = array();
while ($row = mysql_fetch_array($result)) {
     $existing_item_ids[$row['item_id']] = 1;
}
$insrtion_arr = array();
$updated_arr = array();

if (!$existing_item_ids) { // if empty , the all cart data will insert into database
    $insrtion_arr = $item_ids;
  } else {
    foreach ($item_ids as $v) {
           if (isset($existing_item_ids[$v])) {
               $updated_arr[$v] = 1;
           } else {
              $insrtion_arr[$v] = 1;
         }
    }
  }
 //loop cart data and do database operation
 foreach ($cart_array as $k => $v) {
       if (isset($insrtion_arr[$v['item_id']])) {
            // do insert
        }   
       if (isset($updated_arr[$v['item_id']])) {
          // do update                                                                
        }   
    }

希望這可以幫到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM