Php 为什么这个1图像显示的次数是无限的?

Php 为什么这个1图像显示的次数是无限的?,php,database,image,oop,mysqli,Php,Database,Image,Oop,Mysqli,这是一次又一次地显示相同的1图像。我有3组:婚礼,5分和杂项,每个有2张图片。它只显示无限次的一张图片的婚礼 我做错了什么?我该如何修复它?试试这个。。此解决方案将为您提供所需的布局 $pgroup = $Sys->db->query("SELECT dj_photo_group.photo_group, dj_photo.name FROM dj_photo_group, dj_photo WHERE dj_photo_group.photo_group = dj_photo.im

这是一次又一次地显示相同的1图像。我有3组:婚礼,5分和杂项,每个有2张图片。它只显示无限次的一张图片的婚礼


我做错了什么?我该如何修复它?

试试这个。。此解决方案将为您提供所需的布局

$pgroup = $Sys->db->query("SELECT dj_photo_group.photo_group, dj_photo.name FROM dj_photo_group, dj_photo WHERE dj_photo_group.photo_group = dj_photo.img_group ORDER BY dj_photo.img_group DESC");

while($photo = $pgroup->fetch_object()) {

    echo '<div class="photo_head">' . ucfirst($photo->photo_group) . '</div>';
    echo '<div class="photo_sub">';

    while($photo->name) {
        echo '<img src="photogallery/' . $photo->photo_group . '/' . $photo->name . '" />';
    }

    echo '</div>'; 
}
$photo->name始终为true。因此,如果你在while循环中使用它,你本质上是说:

$pgroup1 = $Sys->db->query("SELECT dj_photo_group FROM photo_group GROUP BY dj_photo_group");

while ($photo1 = $pgroup1->fetch_object())
{

echo '<div class="photo_head">' . ucfirst($photo1->dj_photo_group) . '</div>';
echo '<div class="photo_sub">';
$pgroup2 = $Sys->db->query("SELECT name FROM dj_photo WHERE img_group = '$photo1->dj_photo_group'");

while ($photo2 = $pgroup2->fetch_object())
{
    echo '<img src="photogallery/' . $photo1->dj_photo_group . '/' . $photo2->name . '" />';
}

echo '</div>';
}
记住,只要指定的条件为真,while循环就会继续运行

实际上,您应该使用if语句

while(true){
    // do this
}
而$photo->name将重复,直到$photo->name为false。因为在循环中没有任何东西会改变它,它将永远是真的,因此循环将永远持续下去

正如Nishant所说,您希望用if语句替换它。

而$photo->name进入无限循环,因为条件始终为true。您应该为这个while循环设置一个结束条件,否则您也可以使用if条件

if($photo->name){
    // do this
}

因为$photo->name始终为true,所以您永远不会退出第二个while循环,这称为无限循环感谢所有回复。if仍然给我相同的结果。婚礼->2张图片,5分->2张图片和杂项->2张图片。这是把每个图像在一个单独的分区。婚礼,5分和杂项有2个图像,每个我得到6个分区,每个1个图像,我应该有3个分区婚礼,5分和杂项有2个图像显示在3个分区。希望我解释得更好一点。这让我非常恼火。谢谢大家。一些我需要如何获得1组婚礼,然后循环该组中的图像名称,然后一旦完成,我需要转到下一组5点,并显示该分区中的2个图像,依此类推。哦,好的。。我得到了它。。请检查我编辑的答案@用户3377300谢谢您的回复。此解决方案减少了对数据库的查询,如果其他人遇到此问题,此解决方案位于,谢谢大家的帮助!!!点击链接:p它的工作方式正是我想要的
if($photo->name)