2016-04-14 4 views
0

私は複数のテーブルから1つのhtmlテーブルにデータを印刷しようとしていますが、なぜ表の見出しだけが表示されているのかわかりません。mySQLテーブルのデータがエコーされないのはなぜですか?

<?php 

include('includes/db_connect.php'); 

$query_student="SELECT student.firstName, student.lastName, major.major, major.gradDate, 
       FROM student 
       JOIN major 
       ON student.studentID=major.studentID"; 
    $result_student=mysqli_query($conn, $query_student); 

echo '<table> 
    <tr> 
     <th>First Name</th> 
     <th>Last Name</th> 
     <th>Graduate Year</th> 
     <th>Major</th> 
     <th>Activity After Graduation</th> 
    </tr>'; 

while($row = mysqli_fetch_array($result_student)) 
{ 
    echo'<tr>'; // printing table row 
     echo '<td>' . $row['firstName'] . '</td>'; 
     echo '<td>' . $row['lastName'] . '</td>'; 
     echo '<td>' . $row['gradDate'] . '</td>'; 
     echo '<td>' . $row['major'] . '</td>'; 
    echo'</tr>'; // closing table row 
} 
echo '</table>'; 

$conn->close(); 
?> 
+0

phpMyAdminのような別の環境でクエリを実行して、結果が返されるかどうかを確認しましたか? –

+0

クエリの実行後にエラーチェックを追加する – Jens

答えて

0

スタートあなたが従わなければならない追加のフィールドを持っていないようmajor.gradDate,後、クエリから,を削除することもできます。

変更あなたが本当に何が起こっているのかを知るためにあなたのクエリでエラーをチェックする必要があります

...:$result_student=mysqli_query($conn, $query_student);

へ:あなたはforeachのを使用してこれを達成することができます

$result_student=mysqli_query($conn, $query_student) or die(mysqli_error($conn));

0

ステートメントとmysqliオブジェクトのqueryメソッドです。

また、SQLを修正しました。テーブルを2つ追加する場合はLEFT JOINにする必要があります。このSQL文がまだテストされていないため、環境内で動作することをまず確認してください。

$query_student="SELECT t1.firstName, t1.lastName, t2.major, t2.gradDate 
       FROM student t1 
       LEFT JOIN SECOND_TABLE t2 
       ON t1.studentID = t2.studentID"; 

// Replace SECOND_TABLE with your table name you're joining on 

?> <tr> 
<?php 
    if($conn): 
     foreach ($conn->query($query_student) as $row): ?> 
     <!-- conditional statements allow HTML inside PHP loops --> 
     <td> <?php echo $row['firstName']; ?> </td> 
     // [...] 
    <?php endforeach; 
    else: 
     die('Connection Error: ' . $conn->error); 
    endif; ?> 
</tr> 

希望がありました。