为什么我要两次调用查询?

时间:2016-04-25 20:07:37

标签: php sql

为什么我需要在这里查询两次?为什么我不能只查询下面的那个,将其更改为'SELECT * FROM ...'并使用它查询脚本的其余部分?当我尝试这样做时,我的脚本的后半部分将无法从头开始识别查询,我必须再次查询。 $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 } ?>
谢谢你:)

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

将对象拉到数组远远更容易,然后遍历数组,这样就不会因为耗尽对象行而陷入困境。