gpt4 book ai didi

php - 如何使用 PHP 选择和回显 MySQL 数据(一对多)

转载 作者:行者123 更新时间:2023-11-29 06:58:07 26 4
gpt4 key购买 nike

这是我当前的代码,它可以很好地解决一个问题。

$stmt = $conn->prepare("SELECT * FROM tmdb_movies JOIN genres ON genres.genres_tmdb_id=tmdb_movies.tmdb_id 
");
// 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
foreach ($result as $row) {
print "".$row["movie_title"]." ".$row["genres_name"] ." ".$row["cast_name"] ."<br/>";
}

问题是,我试图呼应电影名称及其流派。

我想回应的是:

The Dark Knight - Action, Crime, Drama

代码回显什么:

The Dark Knight - Action

The Dark Knight - Crime

The Dark Knight - Drama

主电影表截图http://prntscr.com/fokwip

及类型电影表截图http://prntscr.com/fokwoy

最佳答案

要回显您想要的内容,您可以更改 sql 查询:

$stmt = $conn->prepare("SELECT *, GROUP_CONCAT(genres.genres_name SEPARATOR ', ') AS genre_concat FROM tmdb_movies JOIN genres ON genres.genres_tmdb_id=tmdb_movies.tmdb_id GROUP BY tmdb_movies.movie_title");

// sql strict group by

$stmt = $conn->prepare("SELECT tmdb_movies.movie_title, tmdb_movies.cast_name, GROUP_CONCAT(DISTINCT genres.genres_name SEPARATOR ', ') AS genre_concat FROM tmdb_movies JOIN genres ON genres.genres_tmdb_id=tmdb_movies.tmdb_id GROUP BY tmdb_movies.movie_title, tmdb_movies.cast_name ORDER BY tmdb_movies.movie_title");

$stmt->execute();

$result = $stmt->fetchAll();

foreach ($result as $row) {
print "".$row["movie_title"]." ".$row["genre_concat"] ." ".$row["cast_name"] ."<br/>";}

GROUP_CONCAT 允许为每个独特的电影标题连接所有不同的类型。

更多文档:

分组依据:https://www.w3schools.com/sql/sql_groupby.asp

GROUP_CONCAT:https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

关于php - 如何使用 PHP 选择和回显 MySQL 数据(一对多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com