2015-08-16 56 views
1

我正在嘗試爲我的網站實施購物車。我的頁面循環訪問數據庫中的產品,並使用「添加」按鈕將其顯示在頁面上。一旦你在我的車表中添加它存儲這個項目,如果你已經登錄,您只能添加一個項目。從數據庫檢索購物車項目

產品表

| ID | Name | Price | Quantity | description | image_name | 

。 'CartProduct int'與我的產品表中的'ID'相同。

車表

| CartID | CartProduct | ProductCount | UniqueID | Username | Date 

如果您單擊添加在同樣的產品,ProductCount將遞增。

因此,如果TestUser再次添加CartProduct 1 & 2和2。
我真的不確定如何顯示所有產品的用戶名'TestUser',我也需要ProductCount * Price。

目前我試圖通過每個CartProduct循環訪問登錄用戶,然後從產品表WHERE ID = CartProduct(因爲它們是相同的)中選擇ID。然後,我可以獲取該產品的價格和詳細信息。

目前我從購物車中選擇用戶名=登錄的用戶名。只是讓我可以看到結果,我正在顯示它。

$sql = "SELECT cartProduct FROM cart WHERE username ='" . $name . "'"; 
        $result = mysql_query($sql); 

        $c = 0; 
        $n = 2; // Each Nth iteration would be a new table row 
        while ($db_field = mysql_fetch_assoc($result)) { 
         $res = mysql_query($sql); 
         $row = mysql_fetch_assoc($res); 
         $productNo = $row['cartProduct']; 

         if ($c % $n == 0 && $c != 0) { // If $c is divisible by $n... 
          echo '<div class="row" ></div>'; 
         } 
         $c++; 
         echo "<br>Count: " .$c; 
         ?> 
         <h2> <?php echo "Product No: " . $productNo ?> </a></h2> 
         <?php 

我將3件物品添加到購物車。 CartProduct 1,2,2: - 爲輸出我不斷收到:

產品編號:1個
產品編號:1

我應該看到產品1,然後產品2?

我是不是應該比這更復雜,我的表格是否正確?
有沒有更簡單的方法?

非常感謝您的回覆!

+0

該代碼看起來醜陋af,反正,嘗試PDO,它更好,更容易和推薦。 – octohedron

回答

0

首先,在購物車表中將用戶名更改爲UserId。 下一步是在「JOIN產品」中修改sql查詢以獲得與Products Table的連接並輕鬆獲得產品價格。

但通常情況下,使用PDO驅動程序來獲得更多安全並清除查詢和PHP代碼。閱讀DB中的關係(RDBM)。

+0

謝謝,我會閱讀! – Brent