doudong7256 2015-11-21 02:17
浏览 42
已采纳

如何使用mysql和php将一对多转换为平面数组

How can I format a one to many relationship to one 'row' using mysql or php?

Main Table

movie_id name
1        Portland
2        Blazers

Many Table

movie_id actor
1        Brandon
2        Greg

Below is the psudo code I have mapped out. Not sure if there is any thing native to PHP or MYSQl that would be more efficient before I continue. I'm thinking I have two queries. One with the movie information. One with the actor information. Once they are arrays I will loop through to get a single record for each movie with the actors.

movieInfo = = []
actorInfo = = []

Foreach(movieActorId)
    If(actorId = movieActorId)
         arrayPush(movieInfo[actorArray],actorInfo[name]);

The final array would look like this

movieInfo = array('movie_id' => '1', 
                    'movie_name' => 'porland', 
                    'actor' => array(Brandon,Greg)
                    );
  • 写回答

1条回答 默认 最新

  • duanbi5906 2015-11-21 02:45
    关注

    Maybe this is what you need:

    SELECT m.movie_id, m.name AS movie_name, GROUP_CONCAT(a.actor SEPARATOR ',') AS actor
    FROM movies m
    JOIN actors a ON m.movie_id = a.movie_id
    GROUP BY m.movie_id;
    
    // Run query
    
    $movieInfo = array();
    while ($array = mysqli_fetch_assoc($result)) {
        $array['actor'] = explode(',', $array['actor']);
        $movieInfo[] = $array;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊