3 回答

TA貢獻1827條經(jīng)驗 獲得超4個贊
每個 $row 包含標題(“Snitch”)和一種類型。你循環(huán)這個,所以它與每一行的標題相呼應。試試這個替換:
$oldtitle = $title = '';
while ($row = $stmt->fetch()){
$title= $row['title'];
if ( $oldtitle == $title ) $title = '';
else $oldtitle = $title;
$genre= $row['genre'];
?>
<h1> <?php echo $title ; ?> </h1>
<h1> <?php echo $genre ; ?> </h1>
<?php } ?>

TA貢獻1887條經(jīng)驗 獲得超5個贊
您可以使用PDO 的常量和方法fetchAll()。試試PDO::FETCH_GROUP。它將按第一列對查詢中的所有結(jié)果進行分組。在這種情況下,我只獲取 2 列title和genre. 結(jié)果是:
Array (
[snitch] => Array (
[0] => Action
[1] => Drama
[2] => Crime
)
)
我將它與它混合PDO::FETCH_COLUMN以在我的子數(shù)組中只獲取一列,但您不需要這樣做,您可以獲得整個數(shù)組。
$stmt = $pdo->query("SELECT title, genre
FROM movie, genre, movie_genre
WHERE movie.movie_id = movie_genre.movie_id
AND genre.genre_id = movie_genre.genre_id
And movie.title='snitch'
");
$data = $stmt->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_COLUMN);
foreach($data as $title => $genres){
echo '<h1>'.$title.'</h1>';
foreach($genres as $genre){
echo '<h2>'.$genre.'</h2>';
}
}

TA貢獻1859條經(jīng)驗 獲得超6個贊
在選擇部分您沒有提到任何字段。你可以用 2 種方式。
SELECT movie.movie_id , movie.title , genre.genre
FROM movie, genre, movie_genre WHERE movie.movie_id =
movie_genre.movie_id AND genre.genre_id = movie_genre.genre_id And
movie.name='snitch'
或者
SELECT movie.movie_id , movie.title , genre.genre
FROM movie
INNER JOIN movie_genre ON movie.movie_id = movie_genre.movie_id
INNER JOIN genre ON genre.genre_id = movie_genre.genre_id
WHERE movie.name='snitch'
- 3 回答
- 0 關(guān)注
- 199 瀏覽
添加回答
舉報