2015-04-05 72 views
0

我正在開發一款使用php的購物車,現在我堅持了下面的一些觀點。需要幫助一些邏輯來執行mysql插入查詢?

有喜歡的表:客戶,產品,訂單,order_detail

產品表:

ID |名稱|數量

order_detail表:

ORDER_ID | product_id |數量

我完全用於增加產品做車,客戶可以提交訂單到數據庫中,管理員可以刪除或從後端刪除訂單和客戶可以從前端刪除訂單列表或刪除訂單,如果下令還沒有確認付款。

實施例:

「customer1表」 順序10級的產品,訂單ID是#907987899和 「產品1」 customer1表訂單數量= 2 「產品2」 customer1表訂單數量= 5等等.....

如果訂購仍然沒有確認,那麼客戶仍然可以從訂購清單中刪除產品,也可以刪除整個訂購的產品。

我現在的問題是:如果客戶或管理員取消或刪除訂單仍然沒有確認支付,那麼我想從order_detail表列表返回產品數量返回到產品表。在客戶提交訂單時,產品數量將從產品表中減去。

這裏是我的代碼返回量回產品:

require '../../init.php'; 
require $ROOT . '/functions/basic.php'; 
if(isset($_POST['id'])) 
{ 
    $id = htmlspecialchars($_POST['id']); 

    $delete = dbQuery("DELETE FROM orders WHERE order_id = '$id'"); 

    if($delete == true) 
    { 
     //unlink($ROOT . '/upload/products/' . $image); 

     $select_product = dbAll("SELECT product_id, quantity FROM order_detail WHERE order_id = '$id'"); 

     foreach($select_product as $product) 
     { 
      $quantity = $product['quantity']; 
      $product_id = $product['product_id']; 

      $return_product_quantity = dbQuery("UPDATE products SET quantity = (quantity + $quantity) WHERE product_id = $product_id"); 
     } 

     if($return_product_quantity == true) 
     { 
      $delete_order_detail = dbQuery("DELETE FROM order_detail WHERE order_id = '$id'"); 
      if($delete_order_detail == true) 
      { 
       echo "OK"; 
      } 
      else 
      { 
       echo "Can't delete order detail information"; 
      } 
     } 


    } 
    else 
    { 
     echo "Can't delete order row"; 
    } 
} 

但查詢它似乎無法正常工作,我的要求,所以請幫助我如何處理這樣的邏輯來執行我的要求。

在此先感謝。

+0

這個查詢看起來很可疑:') 「設定張數=(數量+ $量),其中的product_id = $ PRODUCT_ID UPDATE產品」;''爲什麼會出現quantity'兩次你能解釋一下嗎? – 2015-04-05 10:14:21

+0

這看起來好像根本沒有錯誤處理,或者是在數據庫包裝類中完成的(無論哪個都是)?如果是這樣,我希望你得到一些錯誤,告訴你什麼是錯誤的日誌文件? – arkascha 2015-04-05 10:19:43

+0

@TimBiegeleisen數量出現兩次,因爲我想將order_detail中的數量添加到產品本身的數量上。 – 2015-04-05 10:51:54

回答

0

您正在嘗試在UPDATE中使用變量quantity,即使它沒有任何價值。試試這個:

$return_product_quantity = dbQuery("UPDATE products 
          SET quantity = ((SELECT quantity FROM products WHERE product_id = $product_id) + $quantity) 
          WHERE product_id = $product_id"); 
+0

非常感謝。有用。 – 2015-04-05 11:03:14