2016-12-26 58 views
0

圖像表 enter image description herePHP:MySQL查詢Ordery通過

你好,我有一個表comments,我需要採取的最後三個意見,但另一種方式是這樣的:

8 
9 
10 

我的代碼顯示如下:

10 
9 
8 

代碼:

$sql_query = $connection->query("SELECT * FROM comments WHERE `post_id` = '38' ORDER BY `id` DESC LIMIT 3"); 

while ($ff = $sql_query->fetch_array(MYSQLI_ASSOC)) { 
    echo $ff["text"]. "</br>"; 
} 

在此先感謝!

+0

包裝你聲明的子查詢和訴諸它,按升序排列,由評論ID。 – Terry

+0

將'DESC'更改爲'ASC'將使它工作我猜。 – Denisx

+0

@Terry請給我看看代碼 –

回答

2

您可以使用子查詢來完成此操作,如this問題中所述。然而,它可能會更容易,只需使用PHP的array_reverse()

$rows = array_reverse($sql_query->fetch_all(MYSQLI_ASSOC)); 
foreach ($rows as $ff) 
    echo $ff["text"]. "</br>"; 

隨着子查詢,如果你想:

SELECT * FROM (
    SELECT * FROM comments 
    WHERE `post_id` = '38' 
    ORDER BY `id` DESC LIMIT 3 
) t ORDER BY t.id 

基本上這將創建一個派生表別名t與原始查詢的結果,並重新排列這一組有限的結果。

+1

我將不得不記住關於'array_reverse()'。我以前從未使用過它,但未來可能會使用它。 –

0

下面的查詢會給你desider輸出

select * from (SELECT * FROM comments WHERE `post_id` = '38' ORDER BY `id` DESC LIMIT 3) temp order by id