0

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

  $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

4 回答 4

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'];
   }
}
于 2013-01-10T11:46:49.960 回答
1

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

于 2013-01-10T11:47:40.383 回答
0

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

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

于 2013-01-10T11:50:48.320 回答
0

始终给出正确的变量名。你$result and $row在这里持有所有最重要的变量。

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

像这样做,

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

使用$topicResultForPhto and$topicPhotoRow 之类的变量。为所有人做这件事。

还有一个错误,

您已经调用 likeSELECT *并且您拥有表中的所有字段。为什么要再次调用 fromphoto和其他字段之类的select photo from topics where

于 2013-01-10T11:52:12.510 回答