我正在尝试在单个表格框中显示来自sql 中的多行
的数据。
格式为:
"MovieTitle" "movieReleaseYear" "directorName"
The Matrix 1999 Andy Wachowski, Lana Wachowski
其中 Andy Wachowski 和 Lana Wachowski
来自不同的行,但通过 group_concat
聚集在一起
我在 phpmyadmin 中获取它们没有问题,但我不知道如何在 php 中显示它。
我有这个:
$sql="SELECT 725G54_5_movies.MovieTitle, 725G54_5_movies.movieProductionYear, GROUP_CONCAT( 725G54_5_director.directorName )
FROM 725G54_5_movies
JOIN 725G54_5_directed ON 725G54_5_movies.MovieID = 725G54_5_directed.movieID
JOIN 725G54_5_director ON 725G54_5_directed.directorID = 725G54_5_director.directorID
GROUP BY 725G54_5_movies.MovieTitle
ORDER BY $order ASC";
$result=mysql_query($sql);
//Presentation av kontakterna via while-sats till ett formulär
while($rows=mysql_fetch_array($result)){
echo "<tr>
<td>"; echo $rows['MovieTitle']; echo "</td>
<td>"; echo $rows['movieProductionYear']; echo "</td>
<td>";
while($director=mysql_fetch_array($rows['directorName'])){ echo $director; };
echo"</td>
</tr>";
最佳答案
Group Concat 已经连接了董事的姓名,因此您不需要迭代 $rows['directorName']
。代码中的这一部分 id 错误,因为 $ rows
是查询结果中的一行,$rows['director']
是该行中的值,您无法迭代值。
$sql = "SELECT GROUP_CONCAT( 725G54_5_director.directorName ) AS directorNames ..."
while($rows=mysql_fetch_array($result)){
echo "<tr>";
echo "<td>" . $rows['MovieTitle'] . "</td>";
echo "<td>" . $rows['movieProductionYear'] . "</td>"
echo "<td>" . $rows['directorNames'] . "</td>"
echo"</tr>";
}
您使用 GROUP BY 725G54_5_movies.MovieTitle
,因此 directorNames
字段将是该电影的所有 directorName
连接的结果。
关于php - 显示串联的sql数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16731969/