一尘不染

如何在两个循环中使用一个查询

sql

在这种情况下我该如何写查询:这是查询

$gdQuery = $conn->query("blah blah ");

我想将上述查询用于两次的while循环。

  1. 是检索技能名称(名称)
  2. 是要检索学生的姓名(student_fname)

这是一个正确的方法,如果不能的话..?

<table>
<thead>
    <th>Paricipant</th> 
    <?php while($gdData = $gdQuery->fetch_assoc()) {  ?> 
    <th class="text-center"><?php echo $gdData['name']; ?></th> <?php } ?> 
    <th>Score</th> 
</thead>
<tbody>
    <tr>
        <?php while($gdData = $gdQuery->fetch_assoc()) {    ?>
        <td><?php echo  $gdData['student_fname']; ?></td> <?php }   ?> 
        <td style="line-height:45px">Score</td> 
    </tbody> 
</table>

我的问题是当我写第二个while循环不起作用时


阅读 125

收藏
2021-05-16

共1个答案

一尘不染

fetch_assoc从查询结果中检索一行。您可以使用它,直到该结果集中的行用完为止。通过多次调用它,您正在走向结果集的结尾。这就是为什么第二个while循环不执行任何操作的原因。RTD
http://php.net/manual/zh/mysqli-result.fetch-
assoc.php

在开始迭代并将它们存储在变量之前,请使用fetch_all获取所有行。使用该变量进行迭代。

或者,您可以尝试使用data_seek将结果集中的指针重置为在第一个while循环之后开始的位置。http://php.net/manual/en/mysqli-
result.data-seek.php

2021-05-16