为什么我需要在这里查询两次?为什么我不能只查询下面的那个,将其更改为'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 } ?>
谢谢你:)
答案 0 :(得分:1)
第一个循环耗尽了查询的所有结果。您需要重新执行查询或将结果资源回滚到第一条记录。
答案 1 :(得分:0)
将对象拉到数组远远更容易,然后遍历数组,这样就不会因为耗尽对象行而陷入困境。