【发布时间】:2020-02-20 09:03:41
【问题描述】:
我正在做一个项目,我在其中显示用户上传的一些图像,它是使用fetch_object() 方法从数据库表中获取的,这是我的代码:
<?php
$ph1 = $media->fetch_assoc();
echo "testarray";
print_r($ph1);
while ($photo = $media->fetch_object()) { ?>
<li>
<div class="gallery-item">
<a href="<?= $system->getDomain() ?>/uploads/<?= $photo->path ?>" data-fancybox="gallery">
<img src="<?= $system->getDomain() ?>/uploads/<?= $photo->path ?>" alt="User Uploaded Photos" />
</a>
</div>
</li>
<?php } ?>
这里$media 是我的查询结果对象。
我的代码的问题是,while 循环从第二行开始迭代并跳过第一行。因此,我的图片库显示了除最新上传到服务器的图片之外的所有图片。我还测试了这个跳过第一个的while循环是因为$photo变量正在获取除第一个(或最新)之外的所有条目,我还测试fetch_assoc()和fetch_object()都给出了相同的结果,即少一行,当我使用$media->num-rows 检查从查询返回的行数,它返回用户上传的确切行数。我就是找不到为什么我没有得到第一行??
【问题讨论】:
-
能否请您添加您的查询? $system 是从哪里来的?请添加您的完整代码。
-
“while 循环从第 2 行开始迭代并跳过第 1 行” - 你在这里责备错了…… - 你 获取了第一条记录在循环之前,通过
$ph1 = $media->fetch_assoc();.