PHP从数据库中检索数据

时间:2016-09-09 22:35:58

标签: php mysql database

我有一个问题,就是按照我打算的方式检索和格式化检索到的信息。

基本上我有与类别ID匹配的产品ID。产品可以有多个类别,我可以按预期获得结果。但我正在尝试将其格式化为每个产品我获得类别ID列表。现在,我为每个类别ID获得了多个产品ID,如下所示:

Product Id: 65 ––> Categories Id:250
Product Id: 65 ––> Categories Id:249
Product Id: 66 ––> Categories Id:250
Product Id: 66 ––> Categories Id:249
Product Id: 66 ––> Categories Id:252
Product Id: 66 ––> Categories Id:251
Product Id: 66 ––> Categories Id:276
Product Id: 66 ––> Categories Id:268
Product Id: 66 ––> Categories Id:255

我需要它更像:

Product Id: 65 ––> Categories Id:250, 249
Product Id: 66 ––> Categories Id:250, 249, 252, 251, 276,268, 255

以下是我查询的代码:

$sql = "SELECT * FROM `products_categories` ORDER BY `products_categories`.`productid` ASC";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
   while($row = $result->fetch_assoc()) {
      echo "Product Id: " . $row["productid"] . "  ––>  " . "Categories Id:" . $row["categoryid"] . "<br>";
   }
} else {
   echo "0 results";
}

提前感谢您的任何意见。

1 个答案:

答案 0 :(得分:3)

USE GROUP_CONCAT

SELECT productid, GROUP_CONCAT(categoryid) as categoryid
FROM products_categories
group by productid
order by productid