1

我正在尝试使用来自表单的输入使用 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);

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

谢谢,

麦克德莫特

4

1 回答 1

0

关于什么:

$query = array();

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

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

于 2011-03-25T18:49:19.073 回答