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

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

问题描述:

我有2个表PHP查询获取记录从表2至表1

学生

S_ID, LastName, FirstName, MiddleName 

takensubject

S_ID, SubjectCode, Time 

我有以下使用会话显示谁码把主题从takensubject但它只显示ID我想要的是显示一个st的全名使用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,布尔

+0

参考http://php.net/manual/en/mysqli.error.php期间'mysqli_query()'调用,即检查错误查询 – Saty

+0

检查是否存在错误将其更改为'mysqli_query($ conn,$ sql)或死(mysqli_error($ conn));' – mitkosoft

我没有看到列学年,在你的任何一个表中的学期..还需要在列名旁边指定表,如tb2.Time。同时回显您的查询并直接在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' 
+0

学年和学期是在takensubject表我不包括只是假设其在桌子上我不能得到的是警告:( – Acy

+0

你请尝试您的查询直接在phpmyadmin?结果是什么? – Poria

+0

也你需要使用mysql加入 – Poria

我猜你的查询返回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'; 
+0

我反对如何解决这个问题(mysqli_num_rows($ result)> 0)它显示警告 – Acy

+0

尝试到var_dump($ result),检查输出。 –