2014-11-06 39 views
-1

我正在使用<? foreach $posts as $post) ?>來調出所有添加到數據庫的帖子。我其實想把3個新增加的帖子叫做數據庫,並非全部都是20.

我該怎麼做? 我已經閱讀了大部分主題,但他們沒有按照我的方式工作。

謝謝!

+0

在查詢中使用「LIMIT」子句 – 2014-11-06 14:59:24

+0

限制你的數據而不是你的輸出,但是據說'array_slice'應該可以正常工作。或者,只要在數字大於3時將「1」加到數字上並加上「break」。 – h2ooooooo 2014-11-06 15:00:29

+0

限制您的查詢,或使用php端計數器和'break;' – 2014-11-06 15:02:35

回答

3

這個查詢會做...

select * from posts order by id desc limit 3 //hoping posts is your table name 

order by id desc將沃德自己的帖子按降序排列

limit 3讓你可以使用foreach到數據後,將取前3個數據

顯示他們

希望這可以幫助...

+0

是的,這是行得通的。謝謝。我忘了我可以使用查詢。 – LabKitty 2014-11-06 15:12:57

+0

快速問題,如果同一張表中有相同的查詢,但是在同一頁上顯示3個和其他顯示,則該怎麼做2次。 – LabKitty 2014-11-07 10:35:00

+1

'$ query =「select * from post order by id desc」;如果(條件)$查詢。=「限制3」在起始限制爲3,如果用戶想查看所有你可以顯示全部。上面的'if'就可以做到。 – Ronser 2014-11-07 10:59:23

0

有幾個方法來限制$posts,但如果你不能修改,對一些瘋狂的原因,你可以使用:

for ($i = 0; $i < 3; $i++) { 
    if ($i == 0) $post = current($posts); 
    else $post = next($posts); 
    // Do stuff with $post 
} 
+0

使用'current'和'next'有什麼意義?爲什麼不使用'[]'運算符? – 2014-11-06 15:06:21

+0

@ bali182鑰匙是未知的 – sjagr 2014-11-06 15:08:40

0

或者,如果你不能使用LIMIT子句,你可以做

$i = 0; 
foreach ($posts as $post) { 
    if ($i++ > 2) { 
     break; 
    } 

    // do something with $post 
}