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);

しかし、1つ以上のフィールドが空の場合はどうなりますか?空でないフィールドのみが含まれるようにクエリを作成する簡単な方法はありますか?

ありがとう、

マクダーモット

4

1 に答える 1

0

どうですか:

$query = array();

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

このように、フォームのフィールド名がデータソースのフィールド名と同じであることを確認する必要があります。もちろん、すでに検証済みのアレイをループする前に検証を行うことができます。

于 2011-03-25T18:49:19.073 に答える