我在描述这个“问题”时遇到了一些麻烦。请随意将标题更改为对此主题更具描述性的内容。允许用户搜索MySQL数据库时处理不同SQL搜索查询的最佳方法
我有一个数据库,想给用户有机会选择如何对结果进行排序,搜索数据库等
我使用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
,或者是否可以在一个查询中查找?
我不需要一个完成代码片段,我只需要知道是否有任何好的文章或“最佳实践” - 要做到这一点。最简单和最安全的方法是首选。
P.S.你称这种“问题”为何?