一尘不染

检索所有行,但缺少第一条记录

sql

$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。第一行丢失了。我想知道为什么。


阅读 109

收藏
2021-03-17

共1个答案

一尘不染

在您的代码中,您$row = $result->fetch_assoc();只是在开始while循环之前调用。该行正在“消耗”您的第一个原始数据,当您进入循环时,您可以通过再次调用相同的方法将光标移至第二行。

while循环的条件在内容之前执行,在这里您将找到有关PHP While循环的更多信息。

要修复您的代码,请删除第一行。

2021-03-17