如何从数据库中选择多个值

时间:2018-08-21 12:22:20

标签: php html mysqli

我想显示数据库中的学生成绩。但是不行。我不明白如何为此使用代码。这里有一些例子。

我的数据库是-'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是主题详细信息数据库表...

1 个答案:

答案 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; ?>