我有一个带有id消息的div,它应该保留对话的消息。我喜欢当我从数据库中获取消息时最新消息位于div的底部。但它们出现在最前面!我怎么能改变他们的订单? 例如:
$query = "SELECT `messageID`,`message`,`submitDate`
FROM `messages`
ORDER BY `submitDate` DESC LIMIT 0, 4";
$result = mysqli_query($link,$query) ;
print('<div id="messages">');
while($row = mysqli_fetch_array($result))
{
print('<div id="'.$row['messageID'].'">'.$row['message'].'</div>');
}
print('</div>');
消息4是最新的。但问题是当我使用最新印刷的mysql_fetch_array()函数时。像这样:
消息4
消息3
消息2
消息1
答案 0 :(得分:1)
使用变量存储新信息,以便您可以按照自己的方式构建...
$query = "SELECT `messageID`,`message`,`submitDate`
FROM `messages`
ORDER BY `submitDate` DESC LIMIT 0, 4";
$result = mysqli_query($link,$query) ;
print('<div id="messages">');
$divs = '';
while($row = mysqli_fetch_array($result))
{
$divs = '<div id="'.$row['messageID'].'">'.$row['message'].'</div>'.$divs;
}
print($divs);
print('</div>');
答案 1 :(得分:0)
将查询的排序顺序从DESC更改为ASC
答案 2 :(得分:0)
由于DanielM已经写过,你在sql-query中的排序是错误的。
但是$ row是一个数组,因此您也可以使用http://php.net/manual/de/function.array-reverse.php
更改此数组的顺序答案 3 :(得分:0)
如果您想要最新的4封邮件,但需要ASC
顺序,您需要先执行子查询才能获得4 messageID
,然后按ASC
顺序排序 -
$query = "SELECT `messageID`,`message`,`submitDate`
FROM `messages`
WHERE `messageID` IN (
SELECT `messageID` FROM `messages` ORDER BY `submitDate` DESC LIMIT 0, 4)
ORDER BY `submitDate` ASC";