我正在尝试使数据库中的所有数据由SaleID组织,这就是我现在拥有数据库的方式。SalesID 和 ProductID 是外键。
噗嗤。。。销售ID ...产品编号
....1...............1................1
....2...............1.................4
....3...............1................6
....4...............2.................3
....5...............3...........1
....6...............3.......5
....7...............4.................3
....8...............5................3
....9...............5...
我想制作一个表格来显示像这样组织的所有数据。不存储到数据库中只是为了输出此信息。
销售ID.....产品
.........1..1,4,6
.........2..3
.........3.......1,5
.........4.......3
.........5.......3,6
我试图用多维数组来做到这一点,但每次迭代它都会添加一个新行,并且显示与第一个表完全相同的东西,无法修改或添加到过去的行。
这是我现在拥有的代码
<?php
mysql_connect('localhost','root','');
mysql_select_db('mydb');
$query="SELECT * FROM prodsales ORDER by salesID ASC";
$result = mysql_query($query);
echo "<table border='1'>";
while($row = mysql_fetch_array($result)){
echo "<tr><td>" . $row['salesID'] . "</td><td>" . $row['productID'] . "</td></tr>";
}
echo "</table>";
mysql_close();
?>
SELECT SaleID , GROUP_CONCAT( DISTINCT ProductID SEPARATOR ',' ) AS PID FROM prodsales GROUP BY SaleID
请尝试这个希望它可以帮助您获得您想要的
MySQL有一个可爱的group_concat功能,正如Abhik在评论中发布的那样。您可以像这样使用它来获取所需的不同行,并使其他匹配的行成为逗号(或其他任何内容(分隔列表:
select
saleID,
group_concat(productID)
from
prodsales
group by
saleID
order by
saleID
这将以您想要的格式返回行,然后您可以简单地输出到表中。