Php 使用while循环中的fetch_object()无法获得预期结果

Php 使用while循环中的fetch_object()无法获得预期结果,php,mysql,wordpress,Php,Mysql,Wordpress,我正在进行一个项目,其中显示了用户上传的一些图像,并使用fetch\u object()方法从DB表中获取,这是我的代码: <?php $ph1 = $media->fetch_assoc(); echo "testarray"; print_r($ph1); while ($photo = $media->fetch_object()) { ?> <li> <di

我正在进行一个项目,其中显示了用户上传的一些图像,并使用
fetch\u object()
方法从DB表中获取,这是我的代码:

<?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循环从第2行开始迭代,然后跳过第1行。所以,我的图像库显示除最新上传到服务器的图像以外的所有图像。我还测试了跳过第一个while循环是因为
    $photo
    变量正在获取除第一个(或最新的)之外的所有条目,我还测试了
    fetch_assoc()
    fetch_object()
    给出相同的结果,即少一行,当我用
    $media->num rows>检查查询返回的行数时,它返回用户上载的确切行数。我就是找不到为什么我不获取第一行???

    您正在获取第一个结果,而没有使用它 运行
    fetch\u assoc()
    时,您正在获取第一个结果

    $media->fetch_assoc();
    
    一旦提取了结果,就不会再次提取,因此当您循环使用
    $media
    时,结果不再可用,也不再使用


    删除以下代码,就不会跳过第一次迭代:

    $ph1 = $media->fetch_assoc();
    echo "testarray";
    print_r($ph1);
    
    您正在获取第一个结果而不使用它 运行
    fetch\u assoc()
    时,您正在获取第一个结果

    $media->fetch_assoc();
    
    一旦提取了结果,就不会再次提取,因此当您循环使用
    $media
    时,结果不再可用,也不再使用


    删除以下代码,就不会跳过第一次迭代:

    $ph1 = $media->fetch_assoc();
    echo "testarray";
    print_r($ph1);
    

    你能补充一下你的疑问吗?美元制度从何而来?请添加完整代码。“当循环从第2行开始迭代并跳过第1行时”-您在这里指责错误…-您已经在循环之前获取了第一条记录,方法是执行
    $ph1=$media->fetch_assoc()。您可以添加您的查询吗?美元制度从何而来?请添加完整代码。“当循环从第2行开始迭代并跳过第1行时”-您在这里指责错误…-您已经在循环之前获取了第一条记录,方法是执行
    $ph1=$media->fetch_assoc()