迭代通过MySQL查询迭代[PHP]

时间:2014-07-11 16:24:33

标签: php mysql

我曾经使用VBA循环访问Microsoft Access表。我使用了一个录音机,然后根据我前一个或下一个或第一行的条件。

现在我正在使用MySQL和PHP。

  

$ qry = $ conn - >准备(“SELECT * FROM pes”);

     

$ qry - >执行();

     

while($ row = $ qry - > fetch(PDO :: FETCH_ASSOC)){

     echo $row['Date'].' - ' .$row['Time']. ' - ' .$row['State']. '<br>';
     

}

我的问题是我无法前往此前后。我需要能够根据某些条件浏览查询。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以将所有结果添加到array,然后执行for循环,您可以通过数字索引访问任何行:

while ($row = $qry -> fetch(PDO::FETCH_ASSOC)) {
   $rows[] = $row;
}

for ($i = 0; $i < count($rows); $i++) {
   $row = $rows[$i];
   $previous = $rows[$i-1];
   $next = $rows[$i+1];
}

该代码的唯一问题是不总是前一个/下一个(第一个/最后一个迭代)。为此,我们可以使用三元运算符并在这种情况下指定null:

while ($row = $qry -> fetch(PDO::FETCH_ASSOC)) {
   $rows[] = $row;
}

for ($i = 0; $i < count($rows); $i++) {
   $row = $rows[$i];
   $previous = $i > 0 ? $rows[$i-1] : null;
   $next = $i+1 < count($rows) ? $rows[$i+1] : null;
}