Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合两个SQL表以在HTML中创建单个表_Html_Mysql_Sql_Web Development Server - Fatal编程技术网

组合两个SQL表以在HTML中创建单个表

组合两个SQL表以在HTML中创建单个表,html,mysql,sql,web-development-server,Html,Mysql,Sql,Web Development Server,谢谢你的帮助! 我遇到了一个有点复杂的问题,我正在想办法解决它。 本质上,我正在尝试生成一个HTML表,该表从关于作者的SQL数据库中派生出它的所有值。在这个表中,我试图显示ID、他们的名字、姓氏以及每个作者写过的书的总数 在sql中,我正在与两个表进行交互,但我不太清楚如何将它们组合在一起只得到一个表(在HTML中) 第一个表由ID、名字和姓氏组成。 第二个表由AuthorID(外键引用ID)和BookID组成 从本质上讲,每个作者出现的总次数就是他们写了多少本书。因此,我需要找到一种方法将其

谢谢你的帮助! 我遇到了一个有点复杂的问题,我正在想办法解决它。 本质上,我正在尝试生成一个HTML表,该表从关于作者的SQL数据库中派生出它的所有值。在这个表中,我试图显示ID、他们的名字、姓氏以及每个作者写过的书的总数

在sql中,我正在与两个表进行交互,但我不太清楚如何将它们组合在一起只得到一个表(在HTML中)

第一个表由ID、名字和姓氏组成。 第二个表由AuthorID(外键引用ID)和BookID组成

从本质上讲,每个作者出现的总次数就是他们写了多少本书。因此,我需要找到一种方法将其合并到我先前存在的select语句中

我已经成功地用ID、他们的名字和姓氏创建了一个表,但似乎能够找到如何引用第二个表和计算实例的方法。我已经包括了我的HTML和一些数据库截图

HTML:


文件
作者报告:
身份证件 名字 姓
SQL映像:

谢谢

目前我拥有:

要查找作者提供的全部书籍,只需将查询更改为

SELECT ID,FirstName,LastName,(SELECT count(bookId) from books where authorId = Author.id ) as noofbooks from Author
在此子查询查找每个作者的图书数量

<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,FirstName,LastName,(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>

作者报告:
身份证件 名字 姓 书籍数量
谢谢!当我引用ID、FirstName和last name时,如何引用这个select语句以在while循环中使用?嘿,我实现了您的解决方案!再次非常感谢,但是我收到了这个奇怪的错误“注意:在第38行的/Applications/XAMPP/xamppfiles/htdocs/authorreport.php中尝试获取非对象的属性'num_rows'。知道为什么会这样吗?@NoahSmiley当查询字符串中存在逻辑错误时,即
if($result->num_rows>0)
返回空对象时,就会发生这种情况。确保您执行的查询字符串正确。因此,您应该将if更改为以下内容:`if($result&&$result->num_rows)`。
<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,FirstName,LastName,(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>