在MySQL中搜索单个字符串

时间:2013-02-13 01:56:04

标签: php jquery mysql json search

我正在创建一个私人消息系统,我创建了一个php搜索页面,我使用JQuery将一个变量从keyUp上的文本字段传递给一个名为USearch.php或用户名搜索的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中搜索用户,这意味着我正在搜索1个单词或字符串,通过使用这个PHP代码,我必须输入确切的用户名用于返回值的函数。我的真正目的是搜索字符串并根据我的输入字符串返回所有类似的用户名。

1 个答案:

答案 0 :(得分:1)

就像Jon说的那样 - 你希望在%使用你希望你的SQL拥有外卡的地方。

如果你想要名字就像亚光的所有值那么你会做

WHERE name LIKE '%matt%'