私は、いくつかの場所でアクセント付きの文字と大文字を含む Web サイト用のフランス語の MySQL データベースを構築中です。これはすべて完璧に機能します。
ここで、データベースの内容を示すテーブルを設計し (完全に機能しています)、その上に検索バーを配置しました。検索用の SQL クエリは意図したとおりに機能します (LIKE を使用すると、大文字と小文字が区別されず、アクセント付きの文字が基本文字のように扱われます。これは驚くほど正確に私が望んでいることです)。
これが私の問題です。検索のすべてのインスタンスをテーブルで直接強調表示したいと思います。私はこれで部分的に動作しました:
str_ireplace($_POST["search"],
'<span class="highlight">' . $_POST["search"] . "</span>",
$row['First_Name']);
しかし、次の問題が発生します。
- 検索入力に基づいてテーブルのキャップを変更します
- ユーザーがアクセント付き文字を無視した場合 (「école」を探しながら「ecole」を検索した場合)、検索は機能しません。
過去3時間、解決策を探していましたが、運がありませんでした。私は読み始めましpreg_replace()
たが、アクセント付きの文字ごとに無限のコードを手作業で書かないと、正しい方法を見つけることができないようです。SQLクエリが「LIKE」で行うことをphpなどで模倣できれば素晴らしいと思います。