gpt4 book ai didi

PHP: MYSQL select inside another MYSQL select?

转载 作者:行者123 更新时间:2023-11-29 04:06:45 25 4
gpt4 key购买 nike

我正在尝试将一个 mysql select 放在另一个 mysql select 中并组合要显示的结果。

这是我的代码:

$allattrs = "";
$sql69 = "SELECT * FROM product_details";
$query69 = mysqli_query($db_conx, $sql69);
$login_check69 = mysqli_num_rows($query69);
if($login_check69 > 0){
while($row69 = mysqli_fetch_array($query69, MYSQLI_ASSOC)){


$FID = $row69["id"];

$sql2s = "SELECT * FROM ATTRIBUTES WHERE id='$FID'";
$query2s = mysqli_query($db_conx, $sql2s);
$login_check2s = mysqli_num_rows($query2s);
if($login_check2s > 0){
while($row2s = mysqli_fetch_array($query2s, MYSQLI_ASSOC)){
// Get member ID into a session variable

$Sid = $row2s["id"];
$attr = $row2s["attr"];

$allattrs .= ''.$attr.', ';
}

}



$product_list .= '<tr>
<td>'.$allattrs.'</td>
</tr>';

}
}

我遇到的问题是 $allattrs 返回值,但它会将所有内容放在一起。

例如:

如果 mysql 数据库中的一个 attr 列有苹果,另一个列有橙子,当我在我的 PHP 页面上看到 $allattrs 的结果时,我会看到:

id 1 - apples
id 2 - apples, oranges
id 3 - apples, oranges, apples, oranges

etc etc

这实际上是错误的,因为每个属性值都需要忠实于它们自己的 id 和 product_details id 字段!

我不确定我做错了什么导致了这个。

有人可以就这个问题提出建议吗?

如有任何帮助,我们将不胜感激。

最佳答案

编写查询的正确方法是使用JOINEXISTSIN。我想你会发现这是最自然的:

SELECT a.id, GROUP_CONCAT(a.attr) as attrs
FROM ATTRIBUTES a
WHERE a.id IN (SELECT id FROM product_details)
GROUP BY a.id;

这会替换你的一堆代码。

关于PHP: MYSQL select inside another MYSQL select?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32935519/

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