2017-06-28 165 views
1

我的代碼:如何獲取從一個數據對多關係MySQL表

$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"].'"/> 
    '; 

} 

例子:它是如何迴應數據

// 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 

我怎麼想它的回波數據

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

我使用的是一對多的關係SQL表,二表:

tmdb_movies和圖像

回答

3

兩個選項

在For循環
  1. 條件

    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

    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; 
    

上述會給你的數據在一個單一的紀錄,以逗號分隔值,您可以拆分,然後創建標籤

我會去的,雖然

+0

這兩個答案的第一個選項不行。 !)如果我拿第一個答案去,我不能添加我在第一個問題中提到的其他東西。 2.)如果我去與第二個答案,圖像的URL將不會工作 –

+0

如果你的**其他的東西**不依賴於你的FOR循環,我不明白,爲什麼它不起作用。 如果你走第二個選項,爲什麼不能對''進行分割,並且循環它以創建'img'標籤。 –

+0

因爲它會像讓我告訴你爲什麼第一個選項不起作用,給我2分鐘 –

相關問題