简体   繁体   中英

Grouping of html table data by ID in PHP

i have this codes

$result = mysql_query("select * tblsubject");
while(mysql_fetch_query($result)){
if($row['semester']=='1st'){
echo'<tr>
<td colspan="3">First Semester</td>
</tr>';
echo'<tr>';
echo'<td>'.$row['year'].'</td>';
echo'<td>'.$row['semester'].'</td>';
echo'<td>'.$row['subject'].'</td>';
echo'</tr>';
}
else{
echo'<tr>
<td colspan="3">Second Semester</td>
</tr>';
echo'<tr>';
echo'<td>'.$row['year'].'</td>';
echo'<td>'.$row['semester'].'</td>';
echo'<td>'.$row['subject'].'</td>';
echo'</tr>';
}

i always end up output like this.

|Year | Semester | Subject |
|     First Semester       |
|1stYr|    1st   | english |
|     First Semester       |
|1stYr|    1st   |  math   |
|     Second Semester      |
|1stYr|    2nd   | english |
|     Second Semester      |
|1stYr|    2nd   | science |

output must be like this. they will be group by semester.

|Year | Semester | Subject |
|     First Semester       |
|1stYr|    1st   | english |
|1stYr|    1st   |  math   |
|     Second Semester      |
|1stYr|    2nd   | english |
|1stYr|    2nd   | science |

anyone can help me? i really cant solve it. im new to php programming. thanks :)

First, you should order query results by semester field:

$result = mysql_query("select * tblsubject order by `semester` asc");
$cur_semester = '';
while ($row = mysql_fetch_array($result)){ 
    if ($cur_semester !== $row['semester']) {
        echo'<tr>
        <td colspan="3">' . $row['semester'] . ' Semester</td>
        </tr>';
        $cur_semester = $row['semester'];
    }

    echo'<tr>';
    echo'<td>'.$row['year'].'</td>';
    echo'<td>'.$row['semester'].'</td>';
    echo'<td>'.$row['subject'].'</td>';
    echo'</tr>';
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM