好的,所以当你点击thead的链接时我已经设法实现了排序。但如果我想将asc更改为desc我必须更改代码, 有没有办法使用PHP,我可以将表排序为降序,如果它显示为asc?
例如伪: 如果当前列是asc,那么sort desc?
这是我目前的代码:
if (isset($_GET['sort'])) {
$sorting = $_GET['sort'];
$result = $mysqli->query("SELECT * FROM routes ORDER BY $sorting DESC");
}
这是我的链接结构:
路线ID
要确认用户点击链接的时间,它会进行排序,如果他们再次点击相同的链接,则会以相反的方式排序。
答案 0 :(得分:1)
你可以反转数组,所以如果它们首先被排序,那么asc将成为desc:
array array_reverse ( array $array [, bool $preserve_keys = false ] )
为了达到这个目的:
if (isset($_GET['sort'])) {
$sorting = $_GET['sort'];
$result = $mysqli->query("SELECT * FROM routes ORDER BY $sorting DESC"); }
1.-将您的mysql结果资源转换为数组:
$routes = array();
while ($row = mysql_fetch_array($result)) {
$routes[] = $row;
}
2.-反转结果数组
$routes_asc = array_reverse($routes);
答案 1 :(得分:1)
您可以在会话中存储最后一种排序类型。
if (isset($_GET['sort'])) {
$sorting = $_GET['sort'];
// check the last sort type used
$sort = ($_SESSION['last_sort_type'] == 'DESC') ? 'ASC' : 'DESC';
$result = $mysqli->query("SELECT * FROM routes ORDER BY $sorting $sort");
// store it in session.
$_SESSION['last_sort_type'] = $sort;
}
希望它有所帮助。