微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

显示具有一对多关系的php mysql查询结果

这是一个样本表:

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 举报,一经查实,本站将立刻删除。

相关推荐