php - 显示来自连接的数据?

标签 php mysql sql

我有一个页面显示电影评论,通过链接 <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/

相关文章:

php - 如何限制 Symfony 中特定用户对( Controller )操作/方法的访问?

php - 适用于 PHP 的 AWS 开发工具包中的 Promise 不起作用并且没有错误返回

mysql - 如何将一个表列值减去另一个表列值

sql - hive 相当于 "select ... into outfile"的是什么?

sql - PostgreSQL 9.3 - 元素包含在与之间

php - 从逗号分隔的字符串中删除重复项并计算字符串总数

mysql - 如何从 ComboBox 返回对象

mysql - 如何计算查询中的年龄?年龄搜索

c# - 这是 TransactionSope 的正确用法吗?

php - 分页没有值(value)到第二页?