2016-04-25 88 views
0

我有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

回答

0

我沒有看到列學年,在你的任何一個表中的學期..還需要在列名旁邊指定表,如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

0

我猜你的查詢返回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),檢查輸出。 –