我在描述这个“问题”时遇到了一些麻烦。请随时将标题更改为对该主题更具描述性的名称。
我有一个数据库,希望让用户有机会选择如何对结果进行排序、搜索数据库等。
我正在使用 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
对所有可能的查询进行查询,或者是否可以在一个查询中进行?
我不需要完成代码片段,我只需要知道是否有任何好的文章或“最佳实践”方式来做到这一点。首选最简单和最安全的方法。
PS你怎么称呼这种“问题”?