$query = "SELECT * FROM abc";
if ($result = $db->query($query)) {
$row = $result->fetch_assoc();
while ($row = $result->fetch_assoc()) {
$data[] = array("a"=>$row["a"],
"b"=>$row["b"],
"c"=>$row["c"],
"d"=>$row["d"]
);
}
$result->close();
}
$db->close();
<?php foreach ($data as $row) { ?>
<form action="">
<div class="col-lg-3">
<input type="text" value="<?php echo $row['a'] ?>"/>
</div>
<div class="col-lg-3">
<input type="text" value="<?php echo $row['b'] ?>"/>
</div>
<div class="col-lg-3">
<input type="text" value="<?php echo $row['c'] ?>"/>
</div>
<div class="col-lg-3">
<input type="text" value="<?php echo $row['d'] ?>"/>
</div>
</form>
<?php } ?>
上面是我用来检索表中所有行的确切代码。奇怪的是,我有 5 行,但它只显示 4 行。第一行丢失了。我想知道为什么。
最佳答案
在您的代码中,您在开始 while
循环之前调用 $row = $result->fetch_assoc();
。该行正在“消耗”您的第一个原始数据,当您进入循环时,您可以通过第二次调用相同的方法将光标移动到第二行。
while
循环的条件在内容之前执行,在这里您可以找到有关 PHP While loop 的更多信息
要修复您的代码,请删除第一行。
关于php - 检索所有行但缺少第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26086750/