PHP 查询从表 2 获取记录到表 1


PHP query fetching records from table2 to table 1

我有 2 张桌子

学生

S_ID, LastName, FirstName, MiddleName

采取主题

S_ID, SubjectCode, Time

我在下面有一个代码,使用会话来显示谁从 takensubject 中获取主题,但它只显示 ID,我想要的是使用 ID 显示来自 takensubject 的学生的全名,下面的代码显示一些错误警告:mysqli_num_rows() 期望参数 1 mysqli_result,布尔值。谁能帮我纠正我的查询?

<?php
    include'database.php';
    $sescode = $_SESSION['sessioncode'];
    $sestime = $_SESSION['sessiontime'];
    $conn = mysqli_connect($server, $dbusername, $dbpassword, $database);
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    $sql = "SELECT * FROM takensubject tb2, student tb1 where tb2.S_ID=tb1.S_ID and SchoolYear ='$Sy' and Semester ='$Sem' and SubjectCode='$sescode' and Time='$sestime'";
    $no = 0;
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $no++;
            echo"<td>$no ).</td> ";
            echo"{$row['S_ID']}";
            echo"{$row['LastName']}<br>";
        }
    } else {
        echo "No Record Results";
    }
    mysqli_close($conn);
?>

它一直显示此警告:

mysqli_num_rows() 期望参数 1 mysqli_result,布尔值

我想您的查询返回FALSE .尝试这样的事情。

SELECT tb1.*, tb2.*
   FROM takensubject tb2
   INNER JOIN student tb1
   ON tb1.S_ID= tb2.S_ID
   WHERE SchoolYear ='$Sy' 
   and Semester ='$Sem' 
   and SubjectCode='$sescode' and Time='$sestime';

我在您的任何表格中都没有看到"学年","学期"列..您还需要像 tb2 一样指定列名旁边的表。时间。还要回显您的查询并直接在phpmyadmin中尝试检查错误。希望对:)有所帮助尝试类似的东西

SELECT takensubject.*,student.* FROM takensubject INNER JOIN student ON takensubject.S_ID=student.S_ID where takensubject.SchoolYear ='$Sy' and takensubject.Semester ='$Sem' and takensubject.SubjectCode='$sescode' and takensubject.Time='$sestime'