$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。第一行丢失了。我想知道为什么。
在您的代码中,您$row = $result->fetch_assoc();只是在开始while循环之前调用。该行正在“消耗”您的第一个原始数据,当您进入循环时,您可以通过再次调用相同的方法将光标移至第二行。
$row = $result->fetch_assoc();
while
while循环的条件在内容之前执行,在这里您将找到有关PHP While循环的更多信息。
要修复您的代码,请删除第一行。