while循环while循环

时间:2013-01-10 11:44:59

标签: php loops while-loop

感谢答案,我真的很高兴..我编辑了代码,我想问一下,如果我编辑得好吗? : - )

  $result = $sql->query("SELECT * FROM `topic` ;");
                    while($row = $result->fetch_object())
                    {
                    $id=$row->id;
                    $photo=$row->photo;
                    $title=$row->title;
                    $shortinfo=$row->shortinfo;
                    echo"<div id='article'>
                        <a href='reporty.php?page=$id'><div id='article_img'><img src='$photo'/></div></a>
                        <div id='article_text'>
                        <h2>$title</h2>
                        <p>$shortinfo</p>
                        </div>
                        </div>";

4 个答案:

答案 0 :(得分:1)

您应该将第二个查询设置为$result1,因为新的查询正在替换第一个查询。这就是为什么您总是只有一个结果

$result = $sql->query("SELECT * FROM `topic` ;");
while($row = $result->fetch_object())
{
   $id=$row->id;                     
   echo '<div id="article">
            <a href="';
   echo '.php"><div id="article_img"><img src="';
   $result1 = $sql->query("SELECT `photo` FROM `topic` WHERE id='$id' ;");
   while ($row1 = $result->fetch_array()) {
       echo $row1['photo'];
   }
}

答案 1 :(得分:1)

$result$row在两个循环中使用相同的变量名称。

答案 2 :(得分:0)

我建议使用可读且不言自明的变量名称,例如$photo_result$title_result。这样也可以解决您的问题,因为您在循环中使用相同的变量名称。

为了表现和简单,你为什么不JOIN你的桌子?那么你只有一个循环的查询。

答案 3 :(得分:0)

始终提供适当的变量名称。您的$result and $row在这里保留了所有变数。

相同的内存位置将始终更新。所以它失去了旧的价值观(我们在第一年学位/ PUC第一年学到了这一点)

这样做,

例如,当您从topic表格中提取并选择photo时,

使用像$topicResultForPhto and $ topicPhotoRow`这样的变量。为所有人这样做。

还有一个错误,

您已经调用SELECT *,并且您拥有表格中的所有字段。为什么要再次来自photoselect photo from topics where等其他字段?

相关问题