在这种情况下我该如何写查询:这是查询
$gdQuery = $conn->query("blah blah ");
我想将上述查询用于两次的while循环。
这是一个正确的方法,如果不能的话..?
<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循环不起作用时
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