这是从数据库中获取数据的代码
<?php
$uid = $_SESSION['UID'];
$result = mysqli_query($conn,"SELECT user.*,score.* from `user` join score ON user.USERID=score.USERID WHERE user.USERID=$uid ");
if (!$result) {
printf("Error: %s\n", mysqli_error($conn));
exit();
}
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>".$row['SCORE']."</td>";
echo "<td>".$row['AVERAGE']."</td>";
echo "<td>".$row['POINTS']."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
echo "<td>".'0'."</td>";
}
echo "</tr>";
?>
这是我要用于每个行为代码的数据库,它将进入输出的表的某些行
这是当前输出,在这里我可以从“课程考试行”中的数据库中获取所有数据。
这应该是所需的输出。如果数据库中用户的ACTCODE的值为1,则应在课程考试行的输出中;如果在模块1的行中,则为2,并且3如果在模块2行中,依此类推
在此先感谢您的帮助。
答案 0 :(得分:1)
如果我正确理解了您的问题,则要先打印n次0,然后再打印数据,然后再次m次打印0。其中n + 3 + m是表格中的列数。
根据您的评论,我更改了整个答案,现在的策略是将行放置在数组上,并在组织好数组后回显该数组。
// this function will echo the data
function dataBlock($row)
{
return "<td>".$row['SCORE']."</td>".
"<td>".$row['AVERAGE']."</td>".
"<td>".$row['POINTS']."</td>";
}
// the beginning of your code...
$numModules = 4; // a var to store the number of modules
$rows = []
while($row = mysqli_fetch_array($result))
{
array_push($rows[$row['USERID']][$row['ACTCODE']], dataBlock($row));
}
foreach($rows as $row) {
echo '<tr>';
for ($k = 0 ; $k < $numModules; $k++) { echo $row[$k]; }
echo '</tr>'
}