【发布时间】:2014-10-04 18:43:36
【问题描述】:
我正在尝试根据用户输入创建动态搜索查询。
要求:
- 用户可以不填写、填写部分或全部字段。
- 查询在表中搜索符合所有要求的记录。
现在我已经完成了研究,并且发现了多种方法。但是它们都不起作用,如果它们起作用,它们就远非实用。
尝试:
目前我正在创建这样的查询:
SELECT *
FROM assignments
WHERE (id = $id OR id = '')
AND (field1 = $field1 OR field1 = '')
此查询有效,但前提是您填写了所有字段。
我从一篇 stackoverflow 文章中得到了这个,但我再也找不到了,上面写着:
如果用户填写了输入字段,它将检查第一条规则 “id = $输入” 如果用户没有指定任何输入,它将检查“id = ''”以及何时 检查它,它只会返回所有内容。因为它逃避了空搜索规则。
但您可能已经知道,它不起作用..
你建议我如何处理这个问题?
【问题讨论】:
-
为什么不根据您的要求使用 PHP 创建动态查询?例如,一个包含所有过滤元素的数组,这些元素在搜索之前构建您的查询?
-
你用的是pdo还是mysqli?您应该准备好您的陈述,以便为您妥善处理...
标签: php mysql sql search mysqli