感谢答案,我真的很高兴..我编辑了代码,我想问一下,如果我编辑得好吗? : - )
$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>";
答案 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 *
,并且您拥有表格中的所有字段。为什么要再次来自photo
和select photo from topics where
等其他字段?