• ベストアンサー

どうしても、%$keyword%でひっかかると、そちらを食ってしまいます。

$sql = "select * from $OP_TNAME where option_settingname_num='$session_option_settingname_num'"; if($optionname[1]!='' && $optionname[1]!='a' && $keyword!=''){ $sql .= " and field1 like '%$keyword%'"; } for($i=2;$i<=30;$i++){ if($optionname[$i]!='' && $optionname[$i]!='a' && $keyword!=''){ $sql .= " or field".$i." like '%$keyword%'"; } } $sql .= " order by nowdate"; 上記で、 where option_settingname_num='$session_option_settingname_num'を絶対条件にしたいのですが、うまくいきません。 どうしたらよいでしょうか。 どうぞ宜しくお願い致します。

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

どううまくいきませんか? and や or で引っかかっているのならば 括弧をつけてその範囲を明示的にしてやらないと思った通りにならないと思います。

sato777
質問者

お礼

上記の前に試した明示的に弧を付ける方法にミスがありました。 修正後、現在正常に動作しております。 大変助かりました。 ご指摘頂き、有難う御座いました。

sato777
質問者

補足

$keywordに該当すると、where option_settingname_num='$session_option_settingname_num'"の条件が無視されてしまいます。

関連するQ&A