美好的一天。我想就此事寻求帮助:
<?php
$classes = "SELECT * FROM students, lectures, rooms, classes WHERE
students.student_id=classes.student_id AND
lectures.lecture_id=classes.lecture_id AND rooms.room_id=classes.room_id";
$class_result = mysqli_query($con, $classes);
?>
这是关于phymyadmin的表格:
|--class_id--|--student_id--|--lecture_id--|--room_id--|
| 2 |(1) Goku |(1) Physics | NULL |
| 3 |(2)Leonardo |(2) Science |(1) 101 |
| 5 |(2)Leonardo |(3) Math |(2) 102 |
|------------|--------------|--------------|-----------|
Note: The parenthesis are the IDs
然而,当我在html上反映它时,它看起来像这样:
|--student--|--lecture--|--room--|
| Leonardo | Science | 101 |
| Leonardo | Math | 102 |
|-----------|-----------|--------|
我想要的是这样:
|--student--|--lecture--|--room--|
| Goku | Physics | |
| Leonardo | Science | 101 |
| Leonardo | Math | 102 |
|-----------|-----------|--------|
我该如何解决?我正在使用此代码:
<table>
<tr>
<td>student</td>
<td>lecture</td>
<td>room</td>
</tr>
<?php while($class = mysqli_fetch_array($class_result)) { ?>
<tr>
<td><?=$class['student']?></td>
<td><?=$class['lecture']?></td>
<td><?=$class['room']?></td>
</tr>
<?php } ?>
</table>
答案 0 :(得分:1)
您最好使用较新的JOIN语法,这允许现有(JOIN)行的各种组合(LEFT / RIGHT JOIN)。
$classes = "SELECT * FROM students
JOIN classes ON students.student_id=classes.student_id
JOIN lectures ON lectures.lecture_id=classes.lecture_id
LEFT JOIN rooms ON rooms.room_id=classes.room_id";