鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 關(guān)聯(lián)性數(shù)據(jù)表的原理?有查詢到,但顯示不出來?

關(guān)聯(lián)性數(shù)據(jù)表的原理?有查詢到,但顯示不出來?

假設(shè)有商品數(shù)據(jù)表、用戶數(shù)據(jù)表
當(dāng)我要製作購物車
我要顯示購物車所以有個購物車數(shù)據(jù)表
用戶的行為是加入這個商品進(jìn)去購物車
但是我在購物車我要怎麼顯示才對?
我想到兩種方法
第一個是用戶加入之後順便帶入該商品的名稱等資訊到購物車數(shù)據(jù)表
然後再根據(jù)用戶的ID去撈他的購物車
但這方法假設(shè)商品改了資訊,所有東西也要跟著改

第二個方法是只帶入兩種值
一個是商品ID,一個是用戶的ID
但商品ID裡面有包括商品名稱 圖示
那這樣我要怎麼將購物車顯示?我能抓到的數(shù)據(jù)只有商品ID、用戶ID
我要怎麼關(guān)聯(lián)到另一個數(shù)據(jù)表?
根據(jù)商品ID,去抓商品數(shù)據(jù)表,再將商品資訊顯示?
這樣就不會有源頭修改商品資訊的更新問題
但這個方法我不知道怎麼顯示?

user 有 id
user_cart 有 prod_id, id
product 有 prod_id, name, icon

我的 mysql 查詢是

SELECT b.icon, b.name FROM user_cart as c
      LEFT JOIN product AS b ON c.prod_id = b.id
      Where c.user_id= '{$_SESSION["user-id"]}'

SELECT b.* FROM product as b
      LEFT JOIN user_cart as c ON c.prod_id = b.prod_id
      LEFT JOIN user AS a ON a.id = c.id
      WHERE c.id = '{$_SESSION["user-id"]}'

補充mysql結(jié)構(gòu)

user_cart

clipboard.png

user

clipboard.png

product

clipboard.png

更新
我查詢到有東西
但就是顯示不出來?

clipboard.png

我顯示的代碼為:

<? while($row = mysqli_fetch_array($data)){?>
        <?=$row['name'];?>
      <?}?>

有錯誤嗎?

回答
編輯回答
吃藕丑

第二種更合適,簡單點設(shè)計的話商品ID,用戶ID,商品數(shù)量就夠了。
首先接口請求過來,拿到用戶ID,這是前提。
再根據(jù)用戶ID購物車表內(nèi)查找對應(yīng)的所有商品ID。
最后去商品表根據(jù)商品ID列表找到對應(yīng)商品。
其實和你自己形容的差不多步驟。

SELECT * FROM user_cart as c
LEFT JOIN product AS b ON c.prod_id = b.prod_id
WHERE c.id = '{$_SESSION["user-id"]}'
2017年7月16日 08:13