为什么我必须调用查询两次


Why do I have to call query twice?

为什么我需要在这里查询两次?为什么我不能只查询下面的一个,将其更改为"从...中选择*"并用它来查询脚本的其余部分?当我尝试这样做时,脚本的后半部分从一开始就无法识别查询,我必须再次查询。 $getImages = 'SELECT image_id, image_name FROM images';

<select name="image_id">
    <?php while ($row = $images->fetch_assoc()) { ?>
        <option value="<?= $row['image_id']; ?>"
            <?php if (isset($_GET['image_id']) && $_GET['image_id'] == $row['image_id']) {
                echo 'selected';
            } ?>
            ><?= $row['image_name']; ?></option>
    <?php } ?>
</select>

$sql = "SELECT image_name, caption FROM images WHERE image_id = $image_id";
$result = $conn->query($sql);
if ($result->num_rows) {
$row = $result->fetch_assoc();
?>
<figure><img src="images/<?= $row['image_name']; ?>.jpg" width=600px height=auto>
    <figcaption><?= $row['caption']; ?></figcaption>
</figure>
<?php } else { ?>
    <p>Image not found</p>
<?php } ?>

谢谢:)

第一个循环耗尽查询的所有结果。您需要重新执行查询或将结果资源回退到第一条记录。

将对象拉到数组中,然后遍历数组要容易得多,这样您就不会陷入耗尽对象行的困境。