我有三个表,tblMembers、tblBooks 和 tblReviews。这个想法是一个书评网站。
目前书名只有在有评论的情况下才会显示,但是我希望书名总是一起显示;可以是评论列表,也可以是文本,“此标题尚未被评论”。
这个 SQL 查询有什么问题?
$sql = "
SELECT *
FROM tblBooks
INNER JOIN tblReviews
ON tblBooks.bookID = tblReviews.bookID
INNER JOIN tblMembers
ON tblReviews.userID = tblMembers.userID
WHERE tblReviews.bookID = :bookID";
$query = $odb->prepare($sql);
$query->execute(array(":bookID" => $bookID));
$results = $query->fetchAll();
echo "<h1>".$results[0]['longTitle']."</h1>";
if($results !== FALSE && $query->rowCount()>0) {
foreach($results as $result) {
echo "Reviewed by: " . $result['firstName'] . " " . $result['lastName'];
echo "<br />";
echo "Rating: " . $result['rating']."/100";
echo "<br />";
echo "Date: " . $result['reviewDate'] . " " . $result['reviewTime'];
echo "<br />";
echo "Review:";
echo "<br />";
echo $result['reviewText'];
echo "<hr />";
}
} else { // the book has not been reviewed yet
echo "There are no reviews for this title yet";
}
如上所述,echo "<h1>".$results[0]['longTitle']."</h1>";
仅当书有评论时才执行该行,我想在检查是否有评论之前获取图书详细信息。我怎样才能做到这一点?
另一方面,我怎样才能检查哪些书还没有被审查,并用结果填充下拉列表?- 这已经回答了:D
我怎么能:
填充两个单独的下拉列表,一个用于有评论的书籍,一个用于尚未评论的书籍(我可以这样做,因为我有上述问题中的 SQL)。
或者
填充单个下拉列表,但将有评论的书籍放在顶部,用一串字符分隔,让我们说“---------这些书还没有被审查过------- ---”后面是尚未审阅的书籍。这可能吗?