我正在尝试使用PHP和mongodb使用表单中的输入执行查询。
<form method="post" action="search.php">
<tr><td>Firm</td><td><input type="text" name="firm" /></td></tr>
<tr><td>City</td><td><input type="text" name="city" /></td></tr>
<tr><td>State</td><td><input type="text" name="state" /></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Search" /></td></tr>
</form>
如果填写了所有表单字段,我可以轻松完成此操作(在search.php页面上)
extract($_POST);
$query = array("firm" => $firm, "city" => $city, "state" => $state);
$fields = array("firm");
$cur = $collection->find($query,$fields);
但如果一个或多个字段为空怎么办?有没有一种简单的方法来构造查询,只包含非空字段?
谢谢,
莫特
答案 0 :(得分:0)
怎么样:
$query = array();
foreach ($_POST as $key => $value)
{
if (isValid($value))
{
$query[$key] = $value;
}
}
这样,您只需确保表单字段名称与数据源的字段名称相同。当然,在循环已经验证的数组之前,您可以进行验证。