1

我不知道这是否可能。我显示一个结果表,并希望能够按任何列对表进行排序。我不需要帮助制作这样一张桌子;我只需要有关重新排序查询结果的信息,而无需使用不同的 ORDER BY 指令重复它。

4

2 回答 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 回答