这是一个样本表:
info table
info_id name
1 john
2 peter
------------------------
details table
details_id log date
1 test log for john 2013-08-01
1 another log for john 2013-08-02
2 test log for peter 2013-08-02
这是我的示例查询:
SELECT info.info_id, info.name, details.details_no, details.log, details.date
FROM info JOIN details ON details.details_id = info.info_id
GROUP BY info.info_id
这是我想要实现的显示:
john
1 test log for john 2013-08-01
1 another test log for john 2013-08-02
peter
2 test log for peter 213-08-02
我尝试过使用foreach循环,然后在第一个循环内执行另一个foreach循环.
请帮助伙计们
解决方法:
您可能需要获取数据并创建所需的阵列.
$data = array();
foreach ($result as $item) {
$key = $item['name']; // or $item['info_id']
if (!isset($data[$key])) {
$data[$key] = array();
}
$data[$key][] = $item;
}
// Build your table with the new $data array
编辑
这只是一个例子.正如amaster507指出的那样,如果您的姓名字段不是唯一的,则需要在唯一键上构建数组.与此没有太大的不同,因为您可能只是将$item [‘name’]的实例更改为$item [‘info_id’].
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。