我有一个包含大约 7 个输入的表单,我想让用户根据他选择的标准进行搜索。
例如:输入名称可以是:
- 姓名
- 年龄
- 性别
- 注册日期
但我的用户只想选择前 3 个,因此 SQL 查询将如下所示:
SELECT * FROM table WHERE name='.$name.' AND age= '.$age.' AND gender = '.$gender.'
酷这项工作,但我面临的问题是如何使用 MVC 架构基于用户输入构建不同的 SQL 查询。
我的想法是:
// Syntax is from Nette Framework so please don't care about it, I basicly need logic for it in MVC
public function findMatch($name= NULL, $age= NULL, $gender = NULL)
{
$selection = $this->database->table('table');
if ($name) {
$selection = $selection->where('name', $name);
}
if ($age) {
$selection = $selection->where('age', $age);
}
if ($gender) {
$selection = $selection->where('gender', $gender);
}
return $selection;
}
但这仅有助于“OR”选择而不是“AND”。请问有人可以帮我弄清楚如何解决这个问题吗?