将数据数组转换为php中的表

时间:2016-04-11 16:31:50

标签: php mysql

请有人建议如何处理我遇到的这个问题。

使用此查询:

$query1 = "SELECT * FROM assessments WHERE pupil_id=288";

我有一个来自数据库的数字行,对于在不同时间进行了3次评估的学生(由assessment_id列标记)

Array ( [assessment_id] => 47 [pupil_id] => 288 [assessblock_id] => 13 [Speaking] => P2ic [Listening] => P2ib...


Array ( [assessment_id] => 49 [pupil_id] => 288 [assessblock_id] => 14 [Speaking] => P9a [Listening] => P9a...

Array ( [assessment_id] => 171 [pupil_id] => 288 [assessblock_id] => 15 [Speaking] => H1b [Listening] => H1b...

我需要把它们变成这样的表格。它显示了每个科目的三个等级。

------------------------------
subject  | assessment id | next assessment id| last assessment id |
Speaking | P2ic          |  P9a              | H1b                |

我的问题是如何最好地从我的数据行转移到此表?如果只有一排当然很容易。我无法看到如何添加第三列(第二组结果),因为此时我已经使用了</tr>

以下是我尝试过的一些代码:

$query1 = "SELECT * FROM assessments WHERE pupil_id=288 AND assessblock_id='15'";
$result = $conn->query($query1);
    if ($result->num_rows > 0) {

        ?>
        <table border="1" cellspacing="0" cellpadding="0">
            <tr><th>Subject</th><th>grade</th></tr>
    <?php 
        while($row = $result->fetch_assoc()) {
            foreach ($subjectListArray as $subject){
                 $sub = str_replace(" ", "_", $subject);
                 echo '<tr><td>'.$subject.'</td><td>'.$row[$sub].'</tr>';
            }
        }// endwhile
        echo '</table>';
    }//endif

这会产生一列主题,第二个是第一个评估区。

在上面的查询中,我有evaluateblock_id = 15 - 所以我只得到1行。我删除它以获得所有三行 - 但随后我的表崩溃了。

我可以将第二次和第三次评估纳入我的表......

我无法看到如何直接从qy添加第二和第三个评估块

2 个答案:

答案 0 :(得分:0)

RUN apt-get update
RUN apt-get install -y libz-dev libmemcached-dev && \
    pecl install memcached && \
    docker-php-ext-enable memcached

答案 1 :(得分:0)

最后我决定采用不同的方式。我花了一些时间试图让我的问题清楚,尽管我显然失败了。我只想坚持一个查询。最后,我有3个查询来获得三列。这似乎有效。