MySQLで検索値の文字化けについて - PHPプロ!Q&A掲示板
PHP+MySQLにて検索フォームを作成しております。
検索方法はフリーワード検索でDB側のtagというフィールドに検索値をカンマ区切りで持っている状態です。
複数の検索値はスペースで区切って入力し、それをカナに変換、スペースを半角に変換、SQL文の作成としております。以下ににそのコードを記述しております。
- $fwtext=mb_convert_kana($fwtext,k,"SJIS");
- $keywords = ereg_replace("[ ]+", " ", $fwtext);
- $keywords = trim($keywords);
- $keywords = explode(" ", $keywords);
- $tmp = array();
- foreach($keywords as $kw){
- if($kw == ""){
- }else{
- $tmp[] = " tag LIKE '%".$kw."%' ";
- }
- }
- $sql_fw = "SELECT * FROM category ";
- if(count($tmp) > 0){
- $sql_fw .= "WHERE " . implode("OR",$tmp);
- }
- $rs_fw=mysql_db_query($db,$sql_fw);
- $ct=0;
- while($Row_fw=mysql_fetch_array($rs_fw)){
- $category[$ct]=$Row_fw['A'].$Row_fw['B'].$Row_fw['C'].$Row_fw['D'];
- $ct=$ct+1;
- }
この検索でほとんどの場合は可能ですが・・・「美容院」「病院」の検索値が入力された時、「院」という文字が「病・」「美病・」となってしまいます。
文字コードやエスケープ等調べましたが。「院」がヒットするサイトがなかったもので、こちらに質問させてただきました。どなたか解決方法や、原因をご存知でしょうか?
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。





ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!