我不知道这是否可行。我显示一个结果表,并希望能够按任何列排序表。制作这样的桌子我不需要帮助;我只需要有关重新排序查询结果的信息,而不需要使用不同的ORDER BY指令重复它。
答案 0 :(得分:1)
我可能会使用某种客户端脚本来做这件事,我知道有几个JavaScript或DHTML选项。对于您的用户(在大多数机器上,无论如何)都可以更快地执行这些操作,并避免对数据库进行不必要的命中。我认为我看到的最后一个是:http://www.kryogenix.org/code/browser/sorttable/
但是如果你真的对使用SQL查询这么做感兴趣...那么你的表格会有结果,类似于:
<table>
<tr>
<th><a href='page.php?orderby=name'></th>
<th><a href='page.php?orderby=blah'></th>
....
</table>
然后在构建查询时,您可以简单地执行以下操作:
<?php
$sql = "select * from sometable";
switch ( $_REQUEST['orderby'] ) {
case "name": $sql .= " order by name"; break;
case "blah": $sql .= " order by blah"; break;
default: $sql .= " order by whatevercolumnyouwantasdefault";
}
...
?>
或者甚至是这样简单的事情,假设您已经检查了$ _REQUEST值并确定它们是合法的:
<?php
$sql = "select * from sometable";
if ( isset($_REQUEST['orderby']) )
$sql .= " order by ".$_REQUEST['orderby'];
else
$sql .= " order by whatevercolumnyouwantasdefault";
?>
答案 1 :(得分:0)
也许您可以将结果存储在某种数组中。
修改强> 否则,您可以使用JavaScript对表进行排序,而无需刷新页面。这是jQuery plugin,可以为您执行此操作。