【发布时间】:2012-04-28 00:21:03
【问题描述】:
我在描述这个“问题”时遇到了一些麻烦。请随时将标题更改为对该主题更具描述性的名称。
我有一个数据库,希望让用户有机会选择如何对结果进行排序、搜索数据库等。
我正在使用 PHP 和 MySQL。
我以这个表设置为例:
table Persons
+----+------+----------+------------+------+-----+
| id | age | gender | date | hits | car |
+----+-----------------+------------+------+-----+
| 1 | 18 | male | xx.xx.xxxx | 1040 | 1 |
| 2 | 35 | female | xx.xx.xxxx | 443 | 2 |
| 3 | 67 | male | xx.xx.xxxx | 453 | 2 |
| 4 | 10 | male | xx.xx.xxxx | 3454 | 4 | ==> 4 means Citroen
| 5 | 98 | female | xx.xx.xxxx | 323 | 6 |
+----+------+----------+------------+------+-----+
table Cars
+----+----------+
| id | model |
+----+----------+
| 1 | Porche |
| 2 | Ferrari |
| 3 | Volvo |
| 4 | Citroen |
| 5 | VW |
+----+----------+
从数据库中选择数据的方法可能是这样的:
$sql = "SELECT *, DATE_FORMAT(date, '%b %e, %Y') AS show_date FROM persons ORDER BY date DESC LIMIT 100";
但是,如果我想让用户有机会按日期、点击次数、评分(另一个表)降序和升序排序,并且有机会只选择年龄低于 X 且性别为男性的人(例如)。我该怎么做呢?我需要为所有可能的查询创建if else,还是可以在一个查询中使用?
我不需要完成代码 sn-p,我只需要知道是否有任何好的文章或“最佳实践”方式来做到这一点。首选最简单、最安全的方法。
附:你怎么称呼这种“问题”?
【问题讨论】: