【问题标题】:How can I order html table with data from database? [closed]如何使用数据库中的数据订购 html 表? [关闭]
【发布时间】:2016-06-25 11:11:43
【问题描述】:

我有一个关于 html 表和数据库数据的问题。

我设法创建了一个 html 表,它从 mysql 数据库中获取数据。到目前为止,它工作正常。我在数据库中使用自动增量。

不幸的是,html 表是从上到下的。所以第一个条目的 ID 为 1,而最后一个条目的编号更大。我想更改它,以便将具有较高 ID 的条目显示在顶部。

是否有可能在没有 Javascript 或按钮的情况下做到这一点?我还没有找到解决方案。

【问题讨论】:

  • "我没有太多的编程技能" 这很明显 ;-) javascript 有什么问题?
  • @草莓。你会如何建议修复它?
  • @JefréN。我可能会使用 DESC,就像您建议的那样 - 但简单地对 PHP 数组或直接对 html 输出进行排序(使用 OP 似乎害怕的 javascript)可能更合适
  • @草莓。他们可以那样做。但是,如果他们可以在查询中按照他们想要的方式对其进行排序——我们都知道他们可以——这可能是他们可以使用的最简单、最容易理解的解决方案。你不同意吗?
  • @Andreas:你能添加你的获取数据的代码吗?那么在您的情况下建议一个简单的解决方案会更容易。

标签: php html mysql html-table


【解决方案1】:

您可以使用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


您还可以使用 PHPusort() 函数对从数据库中获取的结果集进行排序。

使用 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


ORDER BY 直接在 SQL 中是首选和更好的选择来对结果进行更高的排序 ID 降低。

【讨论】:

  • 非常感谢您的详细解释。高度赞赏!我之前在 mysql 文档上找到了这部分,但我认为我没有在我的代码中使用 SQL 查询来获取数据(我当然这样做了)。下次我会做得更好。
【解决方案2】:

是的,您可以在 MySQL 语句中这样做:

SELECT *
FROM table
ORDER BY ID DESC

这是您需要添加的最后一行。使用ORDER BY,您可以设置SELECT 结果的显示顺序。顺序可以是DESC(降序)或ASC(升序)。您可以对多列进行排序,以逗号分隔,然后它会首先对第一列排序,然后在第二列排序,依此类推。

【讨论】:

  • 你介意告诉他们为什么这个解决方案是正确的,以便他们下次知道哪里错了吗?
  • @Jefré N.:我不明白你的问题? Andreas 没有使用任何排序,所以我向他展示了如何根据 ID 排序。他没有做的事情并没有真正错。
  • 对不起,我希望我没有冒犯你。我只是指他/她可能不知道 DESC/ASC 用于什么以及它们的含义。这就是我的意思。 :D
  • 是的,你是对的,可能就是这样。我没想到。我添加了一个解释。
  • 谢谢!小狗在微笑。我会过分推动你的慷慨来建议一个链接吗? ...也许?
猜你喜欢
  • 2023-03-20
  • 2018-09-09
  • 1970-01-01
  • 2020-12-17
  • 2012-01-12
  • 2019-07-18
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
相关资源
最近更新 更多