这是从数据库中获取数据的代码
<?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的数据库,它将转到输出表的某一行
这应该是所需的输出。如果数据库中用户的ACTCODE值为1,那么它应该在课程考试行的输出中,如果在模块1行中则为2,如果在模块2行中则为3,依此类推
预先感谢您的帮助。
如果我正确理解你的问题,你想要打印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>'
}