这是我第一次来这里。我希望你们可以帮助我,我们可以做到这一点!抱歉我的英语不好,然后......
我有两张桌子学生和成绩。表STUDENTS有人有GRADES,GRADES有人,有阶段......
我需要像这样显示
Matter | 1º Phase | 2º Phase |
Math | 1.0 | 2.0 |
Science | 2.0 | 4.0 |
但我得到了。
Matter | 1º Phase | 2º Phase |
Math
| 1.0 |
| 2.0 |
Science
| 2.0 |
| 4.0 |
请参阅我的代码:
<?php
foreach($grades->getGradesByStudentID($id) as $grade) {
echo '<tr>';
foreach($matters->getMattersByID($grade['matter_id']) as $matter_v) {
echo "<td>$matter_v[name]</td>";
}
if($grade['phase'] == "1º bimestre") {
echo "<td>hue</td>";
}
if($grade['phase'] == "2º bimestre") {
echo "<td>$grade[grade]</td>";
}
echo '</tr>';
}
?>
答案 0 :(得分:0)
如果没有看到实际的数组数据,很难说出问题所在。但从表面上看,似乎应将if
语句置于foreach
循环的上下文中。以下是我对如何重构的看法:
<?php
foreach($grades->getGradesByStudentID($id) as $grade) {
echo '<tr>';
foreach($matters->getMattersByID($grade['matter_id']) as $matter_v) {
echo "<td>" . $matter_v['name'] . "</td>";
if($grade['phase'] == "1º bimestre") {
echo "<td>" . $grade['hue'] . "</td>";
}
if($grade['phase'] == "2º bimestre") {
echo "<td>" . $grade['grade'] . "</td>";
}
}
echo '</tr>';
}
?>
除了将if
内容放在foreach
循环中之外,我还使用了echo "<td>" . … . "</td>";
内容的字符串连接。另外,在一行上你有echo "<td>hue</td>";
,但我认为应该是echo "<td>" . $grade['hue'] . "</td>";
所以将其调整为。