为什么这1张图片显示无限次?

时间:2014-03-05 08:17:57

标签: php database image oop mysqli

$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>'; 
}

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

我做错了什么,如何解决?

4 个答案:

答案 0 :(得分:0)

$photo->name永远是真的。因此,如果你在while循环中使用它,你实际上是在说:

while(true){
    // do this
}

请记住,只要指定的条件为真,while循环就会继续运行。

您应该使用if语句。

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

答案 1 :(得分:0)

while($photo->name)将重复,直到$photo->name为假。因为在循环中没有任何东西可以改变它,它将永远是真的,因此循环将永远持续。

像Nishant所说,你想用if语句替换它。

答案 2 :(得分:0)

while($ photo-&gt; name)正在进入无限循环,条件始终为true。你应该在这个循环中给出一个结束条件,否则你也可以去条件

if($photo->name)

答案 3 :(得分:-2)

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

$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>';
}