我想显示数据库中的学生成绩。但是不行。我不明白如何为此使用代码。这里有一些例子。
我的数据库是-'students_marks'。
id StudentId SubjectId MarksWritten MarksOral
1 A0001 1 30 10
2 A0001 2 30 10
3 A0001 3 30 10
4 A0002 1 30 10
5 A0002 2 30 10
6 A0002 3 30 10
7 A0003 1 30 10
8 A0003 2 30 10
9 A0003 3 30 10
我希望输出结果如下。
StudentId - A0001
Subject MarksWritten MarkOral
Bengali 30 10
English 30 10
Mathematics 30 10
Total 90 30
StudentId - A0002
Subject MarksWritten MarkOral
Bengali 30 10
English 30 10
Mathematics 30 10
Total 90 30
我的PHP代码是-
<?php
error_reporting(0); $studentIds = str_replace(',', "','",$_GET["StudentID"]);
$sql = "SELECT * FROM students_marks INNER JOIN std_subject ON std_subject.SubjectId=students_marks.SubjectId WHERE StudentID IN ('" . implode("','", $studentIds) . "')";
$result = mysqli_query($mysqli, $sql);
while($row = mysqli_fetch_array($result)) {
?>
<thead>
<tr>
<th><?php echo $row["StudentID"];?></th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $row["MarksWritten"];?></td>
<td><?php echo $row["MarksOral"];?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td><?php echo $row["MarksWritten"]+$row["MarksOral"];?></td>
</tr>
</tfoot>
<?php } ?>
std_subject
id Subject SubjectId
1 Bengali 1
2 English 2
3 Mathematics 3
当显示结果时,我想要在表标题中一次显示所有主题螺母的学生ID。 请帮我,怎么做.... std_subject是主题详细信息数据库表...
答案 0 :(得分:0)
您已经在$studentIds
中拥有了学生ID数组
因此迭代每个学生的ID,并为每个学生查询相应的分数。
尝试以下PHP代码:
<?php error_reporting(0); $studentIds = str_replace(',', "','",$_GET["StudentID"]); ?>
<?php foreach($studentIds as $studentID): ?>
<thead>
<tr>
<th><?php echo $studentID;?></th>
</tr>
</thead>
<?php
$sql = "SELECT * FROM students_marks INNER JOIN std_subject ON std_subject.SubjectId=students_marks.SubjectId WHERE StudentID = '".$studentID."'";
$result = mysqli_query($mysqli, $sql);
while($row = mysqli_fetch_array($result)) {
?>
<tbody>
<tr>
<td><?php echo $row["MarksWritten"];?></td>
<td><?php echo $row["MarksOral"];?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td><?php echo $row["MarksWritten"]+$row["MarksOral"];?></td>
</tr>
</tfoot>
<?php } ?>
<?php endforeach; ?>