我已經將PHP變量$ accountnumber設置爲查看其個人檔案頁面的用戶。在頁面上,我用數據庫填充了用戶信息的一個塊,並且我有一個我們擁有的所有產品的列表,並且我希望在每個客戶旁邊放置一個複選標記,方法是分配一個類給它。如何顯示SQL表中的所有記錄並將這些記錄與另一個表進行匹配?
這裏是我的表:
products
id | name | url | weight
100 p1 p1.html 1
101 p2 p2.html 2
102 p3 p3.html 3
103 p4 p4.html 4
104 p5 p5.html 5
105 p6 p6.html 6
products_accounts
account_number | product_id
0000001 100
0000001 104
0000001 105
0000002 101
0000002 103
0000002 104
0000002 105
0000003 100
0000003 102
我嘗試了LEFT OUTER JOIN,但無法確定$ ACCOUNTNUMBER匹配的products_accounts表的ACCOUNT_NUMBER特定的product_id。我能夠做到這一點的唯一方法是添加一個WHERE語句是這樣的:
WHERE products_acccounts.account_number = '$accountnumber'
它給適當類的產品,但只顯示出他們,而不是所有的產品。
這裏是我的代碼:
$sql ="
SELECT
products.id,
products.name,
products.url,
products_accounts.account_number
FROM
products
LEFT OUTER JOIN
products_accounts
ON
products.id = products_accounts.product_id
";
$sql .="
GROUP BY
products.id
ORDER BY
products.weight
";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
echo '<span class="'; if($row['account_number'] == '$accountnumber')
{ echo'product_yes">'; } else { echo 'product_no">'; }
echo '<a href="' . $row['url'] . '">' . $row['name'] . '</a><br /></span>';
}
如果客戶有不同的P2和P5所有的產品,它應該顯示是這樣的:
✓P1
P2 ✓P3 ✓P4 P5 ✓P6
我對此感覺良好! :)而我是對的!你是對的!我複製並粘貼到我的文本編輯器中,只需要修復三件事情即可使用! _1。修復了印刷錯誤 - 複數「rowproducts」以匹配while語句......_ _2。在「WHERE account_number ='$ accountnumber'AND product_id ='$ product_id'」......中添加了一個單引號......_ _3.將$ class更改爲我已經設置並添加了「 } else {$ class ='product_no';} _ – nitsuj
我知道你會修復一個類,不確定是否第二個修復是必要的,因爲它對我來說總是可以正常工作,但是有時候MySQL可能會很時髦!第一次編輯,那就是我試圖快速打字,並在我工作時像我不在這個網站:) – bowlerae
是的,這是必要的。沒有它,一切都被檢查。我嘗試左外部之前的第一次嘗試join是爲了做這個方法 - 在while語句中加入一個查詢,但是我沒有把它做得很正確,所以我認爲這個方法是錯誤的。謝謝你清理它! – nitsuj