我有一个页面显示电影评论,通过链接 <a href="review.php?id='. $row['review'] . '"> Read Review </a>
显示在同一页面上我还想显示电影标题。那么我是否必须使用联接来显示信息,还是有更简单的方法?我尝试过使用一些查询,但最终我得到了一篇评论的所有电影标题。
这是在 film.php 上首先开始查询的地方
$query = "SELECT films.movie_title, films.rating, films.actor, reviewed.review,
users.username
FROM films
LEFT JOIN reviewed ON films.movie_id=reviewed.movie_id
LEFT JOIN users ON films.user_id=users.user_id";
$result = mysql_query($query) or die ("Could not execute mysql" . mysql_error());
$num = mysql_num_rows($result);
if ($num > 0) { // If it ran ok, display records.
echo "<p> There are curently $num records.</p>";
// Table header.
echo '<table border="1" align="center" cellspacing="0" cellpadding="5">
<tr>
<td align="left"><b>Movie Title</b></td>
<td align="left"><b>Leading Actor</b></td>
<td align="left"><b>Rating</b></td>
<td align="left"><b>Author</b></td>
<td align="left"><b>Review</b></td>
</tr>';
// Fetch and print all the records.
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo '<tr>
<td align="left">' . $row['movie_title'] . '</td>
<td align="left">' . $row['actor'] . '</td>
<td align="left">' . $row['rating'] . '</td>
<td align="left">' . $row['username'] . '</td>
<td align="left"><a href="review.php?id='. $row['review'] . '"> Read Review </a>
</tr> ';
}
}
?>
现在此页面上显示评论,但我想在 sub_review 容器中显示 movie_title。
<body>
<div id="sub_review_container">
<?php
?>
</div>
<div id="Review_container">
<?php
$review = $_GET['id'];
echo $review;
?>
</div>
</body>
最佳答案
您在想要显示评论的查询中缺少评论 ID。
也是因为左连接。它显示所有记录。您应该对评论和电影使用内部联接。应该是这样的:
$query = "SELECT films.movie_title as movie_title, films.rating, films.actor, reviewed.review, users.username FROM films INNER JOIN reviewed ON films.movie_id=reviewed.movie_id INNER JOIN users ON films.user_id=users.user_id where reviewed.id = ... "
...reviewed.id
将是您从页面传递的 ID。
关于php - 显示来自连接的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382859/