简体   繁体   English

如何从一对多关系mysql表中获取数据

[英]How to Fetch data from one to many relationship mysql table

My code: 我的代码:

    $stmt = $conn->prepare("SELECT tmdb_movies.movie_title, images.image_url

FROM tmdb_movies

JOIN images ON images.images_tmdb_id=tmdb_movies.tmdb_id

GROUP BY tmdb_movies.movie_title,images.image_url");

 // Then fire it up
 $stmt->execute();
 // Pick up the result as an array
 $result = $stmt->fetchAll();

// Now you run through this array in many ways, for example
 for($x=0, $n=count($result); $x < $n; $x++){

 echo'
  '.$result[$x]["movie_title"].' - <img src="'.$result[$x]["image_url"].'"/>
  ';

}

Example: How it Echo Data 示例:如何回显数据

// SOME Stuff Here
The Dark Knight: - <img src="sdfsdfds.jpg"/>
// MORE STUFF HERE
// SOME Stuff Here
The Dark Knight: - <img src="sdfsdfds.jpg"/>
// MORE STUFF HERE// SOME Stuff Here
The Dark Knight: - <img src="sdfsdfds.jpg"/>
// MORE STUFF HERE

How I Want It to echo data 我希望它如何回应数据

// Some Stuff Here
The Dark Knight -  <img src="sdfsdfds.jpg"/> <img src="fdfgfdd.jpg"/> <img src="sdfs.jpg"/>
// More Stuff Here

I am using an One To Many Relationship SQL table, Two tables: 我正在使用一对多关系SQL表,两个表:

tmdb_movies and images tmdb_movies和图像

Two options 两种选择

  1. Condition in For Loop For循环中的条件

     for($x=0, $n=count($result); $x < $n; $x++){ { If ($x == 0 ) {then echo $result[$x]["movie_title"];} echo ' - <img src="'.$result[$x]["image_url"].'"/>'; } 
  2. Group_concat GROUP_CONCAT

     SELECT tmdb_movies.movie_title, Group_concat(images.image_url, ', ') FROM tmdb_movies JOIN images ON images.images_tmdb_id=tmdb_movies.tmdb_id GROUP BY tmdb_movies.movie_title,images.image_url; 

The above will give you data in a single record, with comma separated values, which you can split and then create the tags 以上内容将为您提供单个记录中的数据,并使用逗号分隔值,您可以将其拆分,然后创建标记

I would go for the first option though 我会选择第一个选项

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM