1

私のコードでは、名前、姓、および電子メールフィールドで友達を検索したいと思います。データベーステーブルのフィールド名から正確な文字列を照合したい。また、そのフィールドを表示したい。また、検索データのIDを取得したいので、その人に関する完全な説明を表示した後、どうすればよいですか。それ。助けてくれてありがとう。やってみる。

$term=$_POST['find'];
$searchquery=mysql_query("select firstname,lastname,email from account where output LIKE %$term%");
4

4 に答える 4

2

あなたは探している :

SELECT id, firstname, lastname, email
FROM account
WHERE firstname LIKE %$term%
OR lastname LIKE %$term%
OR email LIKE %$term%
LIMIT 20

あなたの方法は潜在的に危険であることに注意してください。$term変数を保護する必要があります。

$term = mysql_real_escape_string($_POST['find']);

また、mysql_* ファミリ関数は非推奨プロセスにあることに注意してください。PDO または mysqli を確認する必要があります。

編集:

$term何も含まれていない場合、すべてのデータベーステーブルを回復したくないと思うので、LIMIT を追加しました。

于 2012-10-02T06:06:36.353 に答える
1
select firstname,lastname,email from account where concat_ws(' ',firstname,lastname,email) LIKE %$term%"

3つのフィールドすべてを単一のフィールドのように扱い、結果が速くなります

于 2012-10-02T06:12:28.733 に答える
1

クエリは次のようになります

$searchquery=mysql_query("select id,firstname,lastname,email from account where firstname LIKE '%$term%' OR lastname LIKE '%$term%' OR email LIKE '%$term%'");

これらの 3 つの列 (名、姓、電子メール) のいずれかで検索する場合。

于 2012-10-02T06:05:12.963 に答える
1

クエリを変更して、表示する必要のあるすべての情報を取得し、用語に対して where ステートメントをチェックインします。このような:

select id, firstname, lastname, email /*, ... other fields */ from account where firstname LIKE '%$term%' OR lastname LIKE '%$term%' OR email LIKE '%$term%'
于 2012-10-02T06:07:03.613 に答える