使用表单数据作为输入的条件查询

时间:2011-03-25 18:29:00

标签: php mongodb mongodb-php

我正在尝试使用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);

但如果一个或多个字段为空怎么办?有没有一种简单的方法来构造查询,只包含非空字段?

谢谢,

莫特

1 个答案:

答案 0 :(得分:0)

怎么样:

$query = array();

foreach ($_POST as $key => $value)
{
    if (isValid($value))
    {
        $query[$key] = $value;
    }
}

这样,您只需确保表单字段名称与数据源的字段名称相同。当然,在循环已经验证的数组之前,您可以进行验证。