質問: php+mysql レコード編集の際入力文字確認 どうしても答えが見つからず、質問させていただきました。 どなたか、ご存じの方いらっしゃいましたら、何卒ご回答いただければと思います。 宜しくお願い致します。 下記に簡単な例をあげさせていただきます。 一覧.php ┼─┼─────┼───────┼────┼ │no│日付 │開催地 │編集ボタン│ ┼─┼─────┼───────┼────┼ │0 │2011-05-06│東京・大阪・福岡│[編集する]│ ┼─┼─────┼───────┼────┼ │1 │2011-10-06│東京・名古屋 │[編集する]│ ┼─┼─────┼───────┼────┼ │2 │2011-12-11│広島・大分 │[編集する]│ ┼─┼─────┼───────┼────┼ [編集する] ボタンを押すと、編集画面に映ります。 編集.php ┼─┼─────┼───────┼───────┼ │2 │2011-12-11│広島・大分 │[編集内容送信]│ ┼─┼─────┼───────┼───────┼ と、一つのレコードを編集する画面になるのですが、 この時に、 ”開催地に東京は含まれているか” というメッセージのようなものを表示させようとしています。 phpの順序では、下記のようになるのかなと考えています。 教えていただきたいのは、 #sqlで単語チェック から、ifの( )内でどう振り分けるか、の部分です。 データベースの「開催地」のカラム全体から”東京”がいくつ含まれるかというのはわかったのですが、 1つのレコードから特定の単語の有無を調べる方法をご教授下さい。 宜しくお願い致します。
回答: >if(strpos($res["syuppan"],'$kaisai') === false){ これでは、$kaisaiが文字列として扱われてしまいます。 $res["syuppan"]に「東京」が含まれているか。 ではなく、「$kaisai」という文字列が含まれているかチェックされます。 変数を使う場合は、''は必要ありません。 正しくは、 if(strpos($res["syuppan"],$kaisai) === false){ となります。 あと、 === false は、文字列が含まれていませんよ。という判定なので、判定後の記載が逆です。 if(strpos($res["syuppan"],$kaisai) === false){ echo "開催地に東京は含まれていません"; } else{ echo "開催地に東京は含まれています"; }