2

ユーザー名を検索する検索フォームがあります。問題は、私のデータベースに、別々の名と姓の列があることです。これは私のクエリが現在どのように見えるかです(これはPHPスクリプト内にあり、$ termは検索入力です):

SELECT * FROM profiles WHERE firstname LIKE '%$term%' OR lastname LIKE '%$term%'

これは、ユーザーが名または姓のいずれかのみを入力した場合は正常に機能しますが、「JohnSmith」などのフルネームの場合は機能しません。

この問題を効率的に修正するために、クエリやphpスクリプトを変更するにはどうすればよいですか?たとえば、最初に文字列を分割する必要がありますか?

4

1 に答える 1

1

あなたは次のようなことをすることができます

WHERE firstname||' '||lastname LIKE '%$term%'

これは、名とスペースと姓をと比較し%$term%ます。

ただし、変数を使用してSQLクエリを作成するべきではありません。PDOを介してパラメーター化されたクエリを使用する必要があります。例については、 http://bobby-tables.com/php.htmlを参照してください。

于 2012-12-16T19:12:17.757 に答える