我对数据库中的html表和数据有疑问。
我设法创建了一个html表,它从mysql数据库中获取数据。到目前为止它工作正常。我在数据库中使用自动增量。
不幸的是,html表从上到下。因此第一个条目具有ID 1,而最后一个条目具有更高的数字。我想更改它,以便具有更高ID的条目显示在顶部。
没有Javascript或按钮,有没有可能做到这一点?我还没有找到解决方案。
答案 0 :(得分:2)
是的,您可以在MySQL声明中执行此操作:
SELECT *
FROM table
ORDER BY ID DESC
这是您需要添加的最后一行。使用ORDER BY
,您可以设置SELECT
结果的显示顺序。订单可以是DESC
(降序),或ASC
(升序)。您可以在多个列上订购,由逗号分隔,然后首先对第一列进行排序,然后对第二列进行排序,等等。
答案 1 :(得分:2)
您可以使用ORDER BY更改列表,从较高的数字开始到较低的数字。
ORDER BY 关键字用于按一列或多列对结果集进行排序,如果您希望以降序(您的情况)将结果集按升序排序,则可以对结果集进行排序使用 DESC 关键字。
所以更新你的SQL查询如下。
SELECT *
FROM table_name
ORDER BY COLUMN_NAME_TO_SORT DESC
http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
您还可以使用 PHP 的 usort()函数对从数据库中提取的结果集进行排序。
使用 usort()
按特定列对数组进行排序的示例代码usort($finalarray, function($a, $b) {
return $finalarray['COLUMN_NAME_TO_SORT'] - $finalarray['COLUMN_NAME_TO_SORT'];
});
// Assuming $finalarray is a result-set from database and it's an array.
参考:http://php.net/manual/en/function.usort.php
直接在SQL中ORDER BY 是首选,更好的选择是将结果排序更高 ID降低。