【发布时间】:2018-07-12 12:02:03
【问题描述】:
我的代码使用 INNER JOIN 加入 4 个表。使用内部联接时无法自定义循环。如何控制 while 子句,使不需要的循环不会发生。
我的代码输出(学生和学校名称在每个学科领域循环)
我想像这样显示学生和学校同时循环。
我的 PHP 代码
<table id="customers">
<?php
$query=$con->prepare("SELECT subjectcomb.subjectid, subjectcomb.schoolid, student.student, school.school, subject.name
FROM ((( subjectcomb
INNER JOIN school ON subjectcomb.schoolid=school.id)
INNER JOIN student ON subjectcomb.schoolid=student.schoolID)
INNER JOIN subject ON subjectcomb.subjectid=subject.id)");
$query->execute();
while ($row = $query->fetch(PDO::FETCH_ASSOC)){?>
<tr>
<td>
<?php echo $row['school']."->".$row['student']?>
</td>
</tr>
<tr>
<td>
<?php echo $row['name']?>
<input type="text" name="mark"></input>
</td>
</tr>
<?php } ?>
</table>
【问题讨论】:
-
在第一个
<tr>之前添加一个if判断,判断是否已经输出了这个schoool->student可以解决这个问题。但我猜你想用 SQL 命令解决它? -
您是否尝试在查询中使用
group by student.student, school.school? -
@Phil 在这种情况下如何应用 if 子句,请举例说明。
-
@AnandaLC,Lucas Borges 刚刚给你举了一个例子。这也是我的意思。