1

プライベートメッセージシステムを作成していて、php検索ページを作成しました。JQueryを使用して、keyUpのテキストフィールドからUSearch.phpまたはUsernameSearchというPHPファイルに変数を渡します。これが私のコードです:

<?php
$Connect = new mysqli("localhost", "root", "", "Data");
$Val = $_POST['Val'];

if($Val)
{
$Search = 'SELECT * FROM Users WHERE ';
$Term = explode(" ", $Val);

foreach($Term as $Key)
{
    $I = 0;
    $I++;
    if($I == 1)
    {
        $Search .= 'Username LIKE "'.$Key.'" LIMIT 0, 10 ';
    }
    else
    {
        $Search .= 'OR Username LIKE "'.$Key.'" LIMIT 0, 10 ';
    }
}

if($Result = $Connect->query($Search))
{
    while($Row = $Result->fetch_assoc())
    {
        $User = $Row['Username'];

        $USearch['S'] = $User;
    }
}
}
echo json_encode($USearch);
?>

ご覧のとおり、コードにエラーはありません。問題は、DBでユーザーを検索していることです。つまり、このPHPコードを使用して、1つの単語または文字列を検索しているため、関数の正確なユーザー名を入力する必要があります。値を返します。私の本当の意図は、文字列を検索し、入力文字列に従ってすべての類似したユーザー名を返すことでした。

4

1 に答える 1

1

Jonが言ったよう%に、SQLにワイルドカードを持たせたい場所で使用したいとします。

名前がマットのようなすべての値が必要な場合は、

WHERE name LIKE '%matt%'
于 2013-02-13T02:22:27.390 に答える