从日期DESC的sql数据库顺序中选择记录,但我希望在日期ASC中的表中显示记录

时间:2016-03-11 14:45:11

标签: php mysql date

我在表中有7条记录,但我想只选择按日期DESC排序的最后5条记录。我想在我的表格中按日期ASC显示这些记录。

我的代码:

$select_record = mysqli_query($con, "select * from table order by date DESC limit 5");
while($row=mysqli_fetch_array($select_record)){

$date = $row['date'];

echo "<tr><td>$date<br></td></tr>";

像我这样在我的表中记录

Date
2014-05-15
2014-04-15
2014-06-15
2014-02-15
2014-07-15
2014-01-15
2014-03-15

我的代码给我这样的结果

Date
2014-07-15
2014-06-15
2014-05-15
2014-04-15
2014-03-15

但我想要这样的结果

Date
2014-03-15
2014-04-15
2014-05-15
2014-06-15
2014-07-15

6 个答案:

答案 0 :(得分:4)

在第一个上面做第二个SELECT:

SELECT t.* FROM 
   (SELECT * FROM `table` ORDER BY `date` DESC LIMIT 5) t 
ORDER BY t.`date` ASC

简短版本:

(SELECT * FROM `table` ORDER BY `date` DESC LIMIT 5) ORDER BY `date` ASC

答案 1 :(得分:0)

编辑你的while循环:

而不是这样做:

while($row=mysqli_fetch_array($select_record)){

$date = $row['date'];

echo "<tr><td>$date<br></td></tr>";

}

尝试这样做:

    create an array that can store your date values retrieved from query 
    while($row=mysqli_fetch_array($select_record)){

    $date = $row['date'];
    Add $date to the array you created

    }
    Iterate the array from the END to START and print dates .
    {
       echo "<tr><td>$date<br></td></tr>";
    }

答案 2 :(得分:0)

将您的日期存储在数组中,然后使用 array_reverse() PHP函数以相反的顺序获取结果。

array_reverse — Return an array with elements in reverse order

Reverse array values while keeping keys

答案 3 :(得分:0)

试试这个:

$select_record = mysqli_query($con, "select * from table order by date DESC limit 5");

// Sort in chronological order.
usort($select_record, function($a, $b) {
  return strcmp($a['db'], $b['db']);
});

while($row=mysqli_fetch_array($select_record)){

$date = $row['date'];

echo "<tr><td>$date<br></td></tr>";

答案 4 :(得分:0)

简单的解决方案是在PHP域中提取行和反向列表。根据结果​​大小,这将是我的简单解决方案。

如果你真的想这样做而不必将完整的结果存储在PHP域中,你可以通过子选择来完成。这意味着用以下代码替换您的查询表达式:

$select_record = mysqli_query($con, "SELECT * FROM (select * from table order by date DESC limit 5) AS result ORDER BY date");

但我认为这比仅仅在PHP中反转结果更难以维护。

答案 5 :(得分:0)

您还可以将结果保存在数组中。然后,您可以使用sort($array);

PHP function Sort