Javascript 按列值排序HTML表
我正在找人帮我解决这个问题: 我们有一个充满用户等级的数据库,这些数据被拉入一个类似这样的表中(不能发布图像): 我们基本上希望对“排名”列进行排序,以便“高级管理员”排在第一,“管理员”排在第二,“版主”排在最后 我花了数小时寻找通过sql排序、php数组排序、javascript排序等方式对表进行排序的方法,但找不到任何不按字母顺序排序的方法Javascript 按列值排序HTML表,javascript,php,html,sorting,html-table,Javascript,Php,Html,Sorting,Html Table,我正在找人帮我解决这个问题: 我们有一个充满用户等级的数据库,这些数据被拉入一个类似这样的表中(不能发布图像): 我们基本上希望对“排名”列进行排序,以便“高级管理员”排在第一,“管理员”排在第二,“版主”排在最后 我花了数小时寻找通过sql排序、php数组排序、javascript排序等方式对表进行排序的方法,但找不到任何不按字母顺序排序的方法 非常感谢您的帮助
非常感谢您的帮助也许你应该考虑这个jQuery插件。它更容易集成,您可以利用它做很多事情。:)
-数据表 PHP提供了一个名为
usort
的自定义排序函数。有关文档,请参阅
它允许您使用自定义比较函数比较两个对象。关于如何开始制作自己的比较函数
usort
函数接受两个参数:要排序的数组和自定义比较函数。例如,如果您有一个名为$results
的结果数组,您可以这样定义比较函数:
function my_compare($person1, $person2) {
if($person["rank"] == $person2["rank"]) {
return 0;
}
elseif($person1["rank"] == "Senior Admin") { // Senior admin will always be at the top
return -1;
}
elseif($person2["rank"] == "Senior Admin") {
return 1;
}
elseif($person1["rank"] == "Admin" && $person2["rank"] == "Moderator") {
return -1;
}
elseif($person1["rank"] == "Moderator" && $person2["rank"] == "Admin") {
return 1;
}
else {
return 0;
}
}
然后,您可以通过调用
usort($results,“my_compare”)应用排序代码>您可以使用SQL按自己喜欢的方式对其进行排序。我不知道SQL表的结构——所以我猜——下面是使用MySQL的示例:
SELECT * FROM users
ORDER BY FIND_IN_SET(rank, 'Senior Admin,Admin,Moderator');
您还可以添加另一列,并为每个列指定一个级别,然后按级别对其进行选择和排序
SELECT * FROM `users` ORDER BY level
如何生成表格的html?在不知道这一点的情况下很难找到答案。您可以按该列对数组进行排序,然后打印html。实际上,这是一个非常简单的解决方案。您遇到了什么问题?请确保您的数据库会对这些数据进行排序。您使用哪一个数据库?您应该自己尝试编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。请务必阅读和阅读。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。虽然此链接可能会回答问题,但您最好带上您的专业知识来帮助解决此问题。可能的答案太多,或者好的答案对于此格式来说太长。我们通常不会回答过于宽泛的问题,当然也不会用仅链接的答案来回答。@JayBlanchard进行了编辑,以增加答案的清晰度,并添加了一些示例代码。
SELECT * FROM `users` ORDER BY level