php - 进行多重排序 MySQL 查询的最有效方法

标签 php mysql

我有一个从 MySQL 表中提取的主题公园列表。默认查询是

try
{
$sql = 'SELECT park_id, name, town, state, country
FROM tpf_parks ORDER BY name ASC';
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching parks: ' . $e->getMessage();
//include 'error.html.php';//
exit();
}

并按名称 ASC 排序。我想要上面的链接,该链接将按州和国家/地区(以及最终的评级)对列表进行排序。我还想要仅显示主题公园、仅水上公园、仅显示“其他”和“显示全部”的链接。

我的看法是,每个查询都需要一个新的 PHP 页面,但这意味着 16 个不同的 PHP 页面,每个查询一个。有没有办法将所有内容保留在一页中,以便 16 个查询全部在一页中运行,并且单击链接只需加载新排序的列表来替换旧列表?

除此之外,我还想要一个 A-Z 链接,通过单击其中一个链接,可以将页面向下跳转到排序方法的字母,例如主题公园列表按州排序,点击“K”将跳转页面至堪萨斯州的公园。我正在考虑使用 html anchor 来连接这些链接,但是我如何将结果回显到 26 个卡盘中(每个字母 A-Z 一个)。

很抱歉问了一些冗长的问题,但我很困惑。 谢谢

最佳答案

 //make a function  

function orderby($select, $var){
$sth = $dbh->prepare('SELECT {$select} FROM tpf_parks ORDER BY {$var}');
$sth->execute();
$result = $sth->fetchAll();
echo $result;
}
// run a function    
orderby ("park_id, name, town, state, country","name ASC");
//make all the functions you need like this

关于php - 进行多重排序 MySQL 查询的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821313/

相关文章:

Mysql/Maria 唯一键表示

php - 优化PHP、MYSQL社区网站性能

php - MySQL 查询问题 - 连接和分组

php - 处理大型数组时如何提高php的执行速度?

php - 从 3 个表中选择 mysql 中的不同值

php 在向数据库中插入一个值之前检查数据库中的值

php - 常用元素 php html navbar

php - 如何在正确的 'Codeigniter way' 中编写此 SQL 查询?

mysql - Symfony2 : List cities by country

MySQL 大十六进制索引