Php Mysqli表排序和thead?
好的,当你点击thead的链接时,我已经实现了排序。但是如果我想把asc改成desc,我必须改变代码, 如果表显示为asc,有没有办法使用PHP将其按降序排序 例如伪: 如果当前列为asc,则排序描述 这是我目前的代码:Php Mysqli表排序和thead?,php,sorting,mysqli,Php,Sorting,Mysqli,好的,当你点击thead的链接时,我已经实现了排序。但是如果我想把asc改成desc,我必须改变代码, 如果表显示为asc,有没有办法使用PHP将其按降序排序 例如伪: 如果当前列为asc,则排序描述 这是我目前的代码: if (isset($_GET['sort'])) { $sorting = $_GET['sort']; $result = $mysqli->query("SELECT * FROM routes ORDER BY $sorting DESC"); }
if (isset($_GET['sort'])) {
$sorting = $_GET['sort'];
$result = $mysqli->query("SELECT * FROM routes ORDER BY $sorting DESC");
}
这是我的链接结构:
路由ID
要确认用户何时单击链接,它将进行排序,如果他们再次单击同一链接,它将以相反的方式进行排序。您可以反转数组,因此如果他们首先排序,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);
您可以在会话中存储最后一种排序类型
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;
}
希望有帮助。Im new php kindy请解释如何实现这样的数组?如果我使用会话,我需要在某处定义会话吗?因为当我测试它时,它说未定义的session你必须在脚本开始时这样做-
if(session_id()=''){session_start();}