gpt4 book ai didi

php - 如何显示 SQL 表中的所有记录并将这些记录与另一个表匹配?

转载 作者:行者123 更新时间:2023-11-29 05:38:10 25 4
gpt4 key购买 nike

我已将 PHP 变量 $accountnumber 设置为正在查看其个人资料页面的用户的变量。在页面上,我有一个 block ,其中包含从数据库中填充的用户信息,我有一个我们拥有的所有产品的列表,我想通过为客户分配一个类别来在每个产品旁边打一个复选标记

这是我的表格:

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 表中特定 product_id 的 account_number 匹配。我能够完成此操作的唯一方法是添加如下 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

最佳答案

使用 SQL 过滤行比使用 PHP 过滤行更好,如下所示:

$sql ="
SELECT
p.id,
p.name,
p.url,
pa.account_number
FROM
products p
LEFT OUTER JOIN
products_accounts pa
ON
p.id = pa.product_id
AND
pa.account_number = ".mysql_real_escape_string($accountnumber)."
ORDER BY
p.weight
";


$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
echo '<span class="'; if(!is_null($row['account_number']))
{ echo'product_yes">'; } else { echo 'product_no">'; }
echo '<a href="' . $row['url'] . '">' . $row['name'] . '</a><br /></span>';
}

关于php - 如何显示 SQL 表中的所有记录并将这些记录与另一个表匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com