如何将数据库中的值放入表中的特定列

时间:2018-08-28 16:10:32

标签: php html arrays mysqli phpmyadmin

这是从数据库中获取数据的代码

<?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行中,依此类推

在此先感谢您的帮助。

1 个答案:

答案 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>'
}