如何解决组合两个SQL表在HTML中创建一个单一的表
感谢您的帮助! 我有一个有点复杂的问题,我正在想办法解决它。 本质上,我正在尝试生成一个 HTML 表,该表从我的关于作者的 SQL 数据库中获取其所有值。在这个表中,我试图显示 ID、他们的名字、姓氏和每个作者写的书的总数。
我在 sql 中与两个表进行交互,并且无法弄清楚如何将它们组合以得到一个表(在 HTML 中)。
第一个表由 ID、名字和姓氏组成。 第二个表由 AuthorID(外键引用 ID)和 BookID 组成。
本质上,每个 AuthorID 出现的总次数就是他们写了多少本书。所以我需要找到一种方法将其合并到我先前存在的 select 语句中。
我已经成功地制作了一个包含 ID、他们的名字、姓氏的表格,但似乎可以弄清楚如何引用第二个表格并计算实例数。我已经包含了我的 HTML 和一些数据库截图。
HTML:
<!DOCTYPE html>
<html lang="en">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="base.css">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Document</title>
</head>
<body>
<nav class="navbar navbar-default navbar navbar-inverse">
<div class="container">
<h2> <a class="head" href="base.php" style="text-decoration: none;">Database Project</a> <a class="btn btn-danger btn-sm main" href="#" role="button">Sign Out</a></h2>
</div>
</nav>
<div class="container">
<div class="jumbotron">
<h3>Author Report:</h3><br>
<table>
<tr>
<th>ID</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<?php
$conn = mysqli_connect("localhost","root","","Zion");
if ($conn-> connect_error){
die("Connection Failed:". $conn-> connect_error);
}
$sql = "SELECT ID,FirstName,LastName from Author";
$result = $conn-> query($sql);
if($result->num_rows>0){
while($row = $result-> fetch_assoc()){
echo "<tr><td>". $row["ID"] . "</td><td>". $row["FirstName"]."</td><td>". $row["LastName"]. "</td></tr>";
}
echo"</table>";
}
$conn-> close()
?>
</div>
</body>
解决方法
要从 Author 中找到没有任何书籍,您只需将查询更改为
SELECT ID,FirstName,LastName,(SELECT count(bookId) from books where authorId = Author.id ) as noofbooks from Author
此处子查询为每个 AuthorId 查找图书数量。
<div class="container">
<div class="jumbotron">
<h3>Author Report:</h3><br>
<table>
<tr>
<th>ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>No of Books</th>
</tr>
<?php
$conn = mysqli_connect("localhost","root","","Zion");
if ($conn-> connect_error){
die("Connection Failed:". $conn-> connect_error);
}
$sql = "SELECT ID,(SELECT count(bookId) from books where authorId = Author.id ) as noofbooks from Author";
$result = $conn-> query($sql);
if($result->num_rows>0){
while($row = $result-> fetch_assoc()){
echo "<tr><td>". $row["ID"] . "</td><td>". $row["FirstName"]."</td><td>". $row["LastName"]. "</td><td>". $row["noofbooks"]. "</td></tr>";
}
echo"</table>";
}
$conn-> close()
?>
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。