我有一张表格如下:
Client_ID | Order_ID |
10 | 1 |
10 | 2 |
10 | 3 |
14 | 6 |
14 | 7 |
14 | 9 |
在PHP中是否有一种优雅的方式可以打印出这个结果集,从而证明了client_id组,而不是创建一个记住以前的Client_ID并验证它是否发生变化的循环。
客户端10:
客户14:
答案 0 :(得分:2)
所有SQL都可以捕获一系列从一行到下一行没有关系的行。 PHP可以通过一个可能与你想象的一样的循环对这些结果强加一些结构:
$last_client_id = null;
while($row = mysql_fetch_assoc($results)) {
if ($row['client_id'] != $last_client_id) {
// Do whatever it is you do for each new client
}
// Do whatever it is you do for each order
$last_client_id = $row['client_id'];
}
答案 1 :(得分:1)
看看GROUP_CONCAT函数: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
编辑:我想我错误地认为你是从数据库中获得的:/
答案 2 :(得分:1)
简短:不。
Long:上一次迭代怎么知道新的id会来?这里必须有一些案件处理,没有它就不可能。