• ベストアンサー

検索機能で条件を指定しない場合の処理

PHPとMysqlでホームページの検索機能をつくっているのですが、わからないところがでてきたので質問させてください。 検索フォームに入力した文字列をGETで送信して、 完全一致するものをデータベースから表示させるというものなのですが、 フォームが空の場合はすべてを表示させたいのです。 フォームを空で送信すると アドレスには、たとえば「name=」というものが含まれてしまいます。 どのようにすればよいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ifでチェックするなら「WHERE 1」にandで条件をつないでいくのが妥当です。 $sql ="SELECT * FROM hoge WHERE 1 "; if(!empty($_GET["name"])) $sql.="AND (name='".$_GET["name"]."'"; 姑息な手段でよいならこんな感じも・・・ $sql=<<<eof SELECT * FROM hoge WHERE 1 AND (name='{$_GET["name"]}' OR '{$_GET["name"]}'='') eof; もちろん$_GETをそのままSQLに渡すのはなにかと危険ですので、きちんと インジェクション対策をしてください。

関連するQ&A