我從頭開始創建自己的博客,主頁按照發布的時間順序加載最新的帖子。我使用前端控制器調用帖子並將數據存儲在MySQL數據庫中。該網站本身很好,帖子都完美加載沒有問題。問題是讓主頁工作。PHP while while從數據庫中取回發佈數據
我爲主頁創建了幾個PHP函數。他們通常按照ID降序排列帖子(數據庫行),因爲它是一個自動增量字段,並調用它們的數據。然後通過從數據庫最頂端的行中獲取最新帖子,將最新帖子顯示爲頂部的「精選帖子」,這是最新的帖子。
而且工作正常 - 當我回應結果時,它顯示最新的帖子,就像我想要的一樣。
在此之下,我想爲兩個帖子並排放置兩個帖子,在第一個帖子之前。所以我做了這個函數來調用它們:
function fetch_rest_posts_1($conn) {
$stuff = $conn->query("SELECT * FROM table WHERE is_post = 1 ORDER BY id DESC LIMIT 1,2");
while ($row = $stuff->fetch_array()) {
$i=1;
return '<div id="post_'.$i.'" style="width:308px;height:215px;padding:5px">
<h2>'.$row['title'].'</h2>
<p>'.date('d/m/Y',strtotime($row['published_date'])).' by '.$row['author'].' | <a href="http://www.domainname.com/'.$row['uri'].'#disqus_thread"></a></p>
<p>'.$row['meta_description'].'</p>
</div>';
$i++;
} // style="white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis"
}
,它實際上沒有工作的偉大,當我呼應的結果,顯示了我想要的一切,但它只能顯示一個DIV,而不是兩個。當我使用SQL查詢並直接將它輸入到phpMyAdmin中時,它給了我兩行。我做錯了什麼?
(我把自動增加有$我,這樣我可以隔離每個箱子,後來改變了風格。)
'return'退出函數,它不走到另一個循環。 – Eternal1 2014-09-18 18:54:10
Damnit。回聲呢? – jonbaldie 2014-09-18 18:56:44
你每次循環時都會聲明$ i,如果你再次聲明它,$ i將永遠不會增加。取出$ i = 1; ...以及@TwiStar所說的...... – 2014-09-18 18:59:59