我有一个从 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/