我有一个可能包含 15 个左右字段的搜索表单,但并非所有字段都需要执行搜索,例如;
用户可能会在 'London' 中搜索在 'Finance' 工作的注册用户,但将所有其他字段留空,例如 $availability 或 $salary 等,因此 $_POST 数据可能类似于:
$location = $_POST['location']; // Value - London
$sector = $_POST['sector']; // Value - Finance
$available = $_POST['available']; // Value - Any
$salary = $_POST['salary']; // Value - Any
请记住,我可能还有来自其他字段的另外 12 个左右的“任何”值,查询数据库(PHP/MySQL)以返回结果而不循环可能是几十个查询的最佳方法是什么。
为了尝试更清楚一点,我想要的是一个类似于(故意伪代码)的查询:
SELECT * FROM table where location = 'location' AND if($availability !='Any') { available = '$available' } etc etc
这样的事情可能吗?
或者我可以创建一个包含 !='Any' 的所有 $_POST 字段的单个字符串,然后对包含字符串中所有单词的行进行搜索(我认为这在理论上可行)?
我希望这对某人有意义,您可以为我指明正确的方向。
PS 所有 $_POST 在与数据库交互之前都被转义和保护,只是不包括在这里:)