我正在努力理解为什么while循环没有循环遍历第一个查询结果。
$pdo = new PDO('connection');
$stmt2 = $pdo->prepare("SELECT user FROM records
ORDER BY date DESC");
$stmt2->execute();
$r2 = $stmt2->fetch(PDO::FETCH_ASSOC);
while ($r2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
echo '<tr><td>' . $r1['user'] . '</td></tr>';
}
我已阅读this帖子,但它是OOP。有什么建议吗?
答案 0 :(得分:3)
您已经通过$r1 = $stmt1->fetch(PDO::FETCH_ASSOC);
获取了第一条记录,并在while
循环中获取了其余记录。这应该有效 -
$stmt2->execute();
while ($r1 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
echo '<tr><td>' . $r1['user'] . '</td></tr>';
}
答案 1 :(得分:2)
那是因为你拿了两次。在while循环之前删除fetch
。
对于这样的事情,
$pdo = new PDO('connection');
$stmt2 = $pdo->prepare("SELECT user FROM records
ORDER BY date DESC");
$stmt2->execute();
while ($r1 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
echo '<tr><td>' . $r1['user'] . '</td></tr>';
}