我有书籍和作者的数据库。这两个实体之间的关系是多对多的,因此它们之间有一个联合表。
books
hasbooks.book_id
as primary,authors.author_id
as primary 和联合表book_authors
有:book_authors.book_id
和book_authors.author_id
.每本书都有不止一位作者。
我想要做的是有一个 php 页面,在一行中显示每本书,然后在下面显示:author1:....,author2(如果适用)
我希望我的 php 看起来有点像:
Book Name: THE BOOK NAME
Author(s): joe- John- Sara
我使用了以下代码,问题是它返回单个结果。因此,如果 book1 由多个作者撰写,则每次都会与不同的作者一起显示不止一次。我想做的是让每本书后面跟着一系列作者
<html>
<body>
<?php
$con = mysql_connect("localhost","myusername","mypassword");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
$result1 = mysql_query("
SELECT books.title, authors.fname, authors.lname
FROM books, book_authors, authors
WHERE books.book_id = book_authors.book_id
AND authors.author_id=book_authors.author_id");
while($row = mysql_fetch_array($result1))
{
print "<h3>Book Name:</h3>";
echo $row ['title'];
print "<br />";
print "Author(s):";
echo $row ['fname'];
echo $row ['lname'];
echo "<br />";
}
mysql_close($con);
?>
</body>
</html>