1

ユーザーがselect option国と州を選択できる場所があります。

ユーザーは「すべての状態」オプションを選択できます。

<select>state</select>

    search all value=''
    CA value='CA'
    NY value='NY'

クエリ:

WHERE country=:country && state=:state

すべてを検索したい場合、どの値を指定すればよいですか? state='' <- すべてを検索

4

3 に答える 3

2

みんなありがとう、私は解決策を見つけました

if(isset($_GET['state']) && $_GET['state']!=""){
    $state=$_GET['state'];
    $state_statement=" && state=:state";

}else{
    $state_statement="";
}

WHERE country=:country".$state_statement." &&";


if(isset($_GET['state']) && $_GET['state']!=""){$SQL->bindValue(':state', $state, PDO::PARAM_STR);}

したがって、ユーザーがすべてを選択または選択しない場合 - value=""; ステートメントは SQL ステートメントに挿入されません

于 2013-07-15T02:08:42.910 に答える
0

SQL では、通常、次のようなことを行います。

WHERE (:country is null or country=:country) and
      (:state is null or state=:state)
于 2013-07-15T01:37:08.560 に答える
0

「すべて検索」機能に対応するには、クエリを書き直してフィルターを含めないようにするか、value=valueSQL を (常に true に) 置き換えます。

それ以外の場合は、独自の SQL を挿入して、条件付きの WHERE 句を使用できます。

" ... WHERE 
        CASE WHEN '$state'='all' THEN TRUE
             ELSE state='$state'
             END
  ... "
于 2013-07-15T01:39:09.530 に答える