私が取り組んでいるプロジェクトで助けが必要です。私は、Webページ上のMySQLとPHPで働いているユーザーの入力内容がわからずにクエリを作成する(SQL、PHP)
:ここ
は私がやろうとしているものです。ユーザーが場所(国、都市、州)、日付、レースの長さまたはレースの名前を入力する入力フィールドがあります。物事は、これらの項目の任意の組み合わせを入力することができます(ちょうどあなたがGoogleでできるように)です。その後、結果を表示するためにデータベースにクエリを実行しました。これは私が今使っているクエリです:
LIKE '$str%'
OR city LIKE '$str%'
OR state LIKE '$str%'
OR country LIKE '$str%'
OR race_distancia LIKE '$str%'
$ strは入力テキストを保持するPHP変数です。
最後に正規表現が追加されているので正しく作成されていませんが、作成したインデックスを使用するので、 '$ str%'を使用しています。たとえば、「マイアミ5k」と入力すると、動作しません。レースはマイアミ5kと呼ばれ、場所もないので...マイアミには5kmあります。
スペース上で入力されたテキストを爆発させたり、展開されたアイテムごとにクエリを実行したり、繰り返した結果を削除することを考えていました。これは動作しますが、私は最も効率的な解決策を見つけようとしており、繰り返されるアイテムを避ける方法が正確にはわかりません。
ありがとうございました!
まず、PDO(PHP Database Object)のようなものを使って、SQLインジェクションを防ぐためのクエリを用意してください。 –
これらはむしろ定義された検索語のようですが、国のための箱があり、市の箱があります。それらのいくつかのリストと他の人のためのフリーテキストがある可能性があります –
スペースで爆発すると動作しません2つの言葉の街があります。また、誰かが州名である「ニューヨーク、ニューヨーク」という都市名を検索した場合、クエリは意図したとおりに機能しません。 – Norse