2013-01-10 245 views
0

感謝回答,我真的很高興..我編輯了代碼,我想問問,如果我編輯它好嗎? :-)雖然循環在while循環

$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>"; 

回答

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

$result$row相同的變量名用於兩個循環中。

0

我會建議使用易讀和易於解釋的變量名,如$photo_result$title_result。這也將解決您的問題,因爲您在循環中使用相同的變量名稱。

爲了表現和簡單起見,你爲什麼不JOIN你的表?然後你只有一個循環的查詢。

0

總是給出正確的變量名稱。您的$result and $row在這裏保存着所有大部分變量。

相同的內存位置會一直更新。所以,它失去的舊值(我們在第一年度/市局第一年學到這一點)

像這樣做,

例如,當您從topic表中讀取並選擇photo

使用像​​$ topicPhotoRow`這樣的變量。爲所有人做這件事。

還有一錯誤,

你已經調用像SELECT *,你必須從表中的所有領域。爲什麼要再次撥打photoselect photo from topics where等字段?