我曾经使用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>';
}
我的问题是我无法前往此前后。我需要能够根据某些条件浏览查询。
谢谢
答案 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;
}