- 締切済み
データベースでの検索が今ひとつうまくいかない
データベースで簡単な検索窓を作りましたが、検索語に対して思うような結果かが得られません。 ページ分割の方法を学ぶために、実験的に簡単なスクリプトを作成してみました。 ですが、つぎのような問題にぶつかりました。 Mysqlデータベースに下記のデータをデータを格納します。 1 田所 33 2 中田 23 3 田里 23 4 加田藤 23 5 佐藤 23 6 南田 23 7 樋口 23 8 安倍 23 9 智恵 23 10 田仲田 23 11 北田 23 12 口 23 13 田 23 14 似多 23 15 田田 23 16 北田 23 問題: http://www.area7japan.com/mtest/bunkatsu.html にて、 検索窓に 「田」という文字を入れてみる。 そうすると、2の「中田」が出てこないのです。でも、「中田」を入れると、 「中田」は出てきます。「田」という文字では「田所は出てくるのに、なぜ「中田」が出て来ないのか、 これが分からないのです。 使用したスクリプト文→ http://www.area7japan.com/mtest/test.html 解決のためにヒントなりいただけば、ありがたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- apple4u
- ベストアンサー率0% (0/0)
foo LIKE BINARY '%bar%' とかとか?
- celtJapan
- ベストアンサー率31% (67/211)
先頭一致と完全一致はできるのに部分一致ができないということですよね... 文字コードのセットは確認されましたか? formからはutf-8で渡してますよね。 それとMySQL側が異なっていて照合順序に問題が起きてるのかなと思ったんですが。 思い付きです。 外してたらすいません。
補足
ありがとうございます。 思いつきでもかまいません。ありがたいです。どんどんヒントをいただければありがたいです。 考える材料にしますので。 1) 「部分一致」に関しては、より正確に言いますと、 「田」の検索に対して、 1ページ目で、「加田藤」は表示されるのに、「中田」は表示されない。 ということは、最後尾の「田」が検索に引っかからないということになります。 2) ところが、二ページ目以降は、問題なく全て表示される。 3) 1ページ目は、 htmlのform文からの文字列入力ですが、 2ページ以降は、HTTP送信というのかな、 p01.php?nm=$nm&page_num=".($page_num-1) という形式で 入力を 行っています。 4) ということは、誇示的の通り、form文からの分については、encodeになんらかの問題があるのかもしれません。
補足
書き込み ありがとうございます。 それにしても、どうもかわらないんですよね。 %$nm% という match式に 田という文字を入れると、 %田% となりますけど、 その場合 データベースの 「中田」に matchして 当然なのですが、それがそうはならないんですよね。 どうもよくわかない。「田中」には matchするのですけど、 「中田」には matchしない。うーむ、わからないな。どうしてこうなるのか。