2016-09-20 108 views
0

我有一個問題,我正在創建一個評論頁面,但我想顯示所有結果倒過來,所以發送的最後結果將最接近底部。但我也需要限制它顯示的評論或消息的數量。我使用mysqli和php。反向輸出順序

$sql = "SELECT id, message FROM messages WHERE name = '$user' ORDER BY id DESC LIMIT 10"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 

     echo "<div id='message'>" . $row["message"]. "</div> "; 
    } 
} else { 
    echo "<p style='color:white;'>No messages have been sent</p>"; 
} 

這個問題就說明我還有最後在底部

+0

您當前的查詢有什麼問題? –

+0

它顯示了我發送的最後一個消息@TimBiegeleisen – Jackbeeby

+0

然後將您的ORDER BY ID DESC更改爲ORDER BY id ASC(或省略ASC,因爲ASC是默認值)。 – Kenjin

回答

0

一種選擇發送頁面的頂部,而不是在這裏是來包裝你當前的查詢,然後更改順序的消息ORDER BY id ASC

$sql = "SELECT t.id, t.message FROM" 
     ." (SELECT id, message FROM messages WHERE name = '$user' ORDER BY id DESC LIMIT 10)" 
     ." ORDER BY t.id"; 

爲了清楚起見,這裏是查詢更可讀的版本:

SELECT t.id, 
     t.message 
FROM 
(
    SELECT id, message 
    FROM messages 
    WHERE name = '$user' 
    ORDER BY id DESC 
    LIMIT 10 
) t 
ORDER BY t.id 
+0

現在工作感謝。 – Jackbeeby