怎样才能改变主div中打印div的顺序?

时间:2015-04-26 14:31:53

标签: php html css

我有一个带有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

4 个答案:

答案 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";