我不知道这是否可能。我显示一个结果表,并希望能够按任何列对表进行排序。我不需要帮助制作这样一张桌子;我只需要有关重新排序查询结果的信息,而无需使用不同的 ORDER BY 指令重复它。
问问题
726 次
2 回答
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";
?>
于 2010-08-10T19:25:44.250 回答
0
也许您可以将结果存储在某种数组中。
编辑: 否则,您可以使用 JavaScript 对表格进行排序,而无需刷新页面。这是一个可以为您执行此操作的jQuery 插件。
于 2010-08-10T19:22:27.440 回答