php jquery json即时搜索

时间:2016-05-30 01:32:21

标签: php jquery mysql json

我正在尝试创建即时搜索以从我的数据库中提取数据。 我希望它能够从2个不同的表中搜索2个字段。到目前为止,我有它的工作,如果您选择任一个表的一个特定字段,它将工作得很好,目前;它正在提取数据并显示它,但我希望搜索具体。

例如,假设我有2个表,一个用于艺术家,另一个用于记录;当您键入艺术家的名称时,它将显示该艺术家的所有记录,但如果您在名称旁边键入发布日期,它将为您提供该特定记录,而不会显示其他记录。这就是我希望它发挥作用的方式。

这是我到目前为止所得到的:

include 'conn.php';

$query = $_POST['query'];

$like = "'%$query%'";
$sql = mysqli_query($db, "SELECT * FROM users  JOIN tshift ON users.id=tshift.uid  WHERE name LIKE {$like}
    LIMIT 6");

$arr = array();
while ($r = mysqli_fetch_assoc($sql))
{
    $results= array();

    foreach($r as $key => $val){
        if(is_string($key))
            $results[$key] = $val;
    }
    array_push($arr, $results);
}
echo json_encode(array("artist" => $arr,"album" => $arr,"release" =>$arr));

1 个答案:

答案 0 :(得分:0)

对于那些想知道或者想知道如何做这样的事情的人来说,这就是我开始工作的方式,我不知道它是否是最好的方式,但它现在可以做到。

    include 'conn.php';

$query = $_POST['query'];

    $newQuery = explode("+", $query);
    $name = "'%{$newQuery[0]}%'";

    if(!empty($newQuery[1])){
        $date = "'%{$newQuery[1]}%'";
    }

    if(empty($date))
    {
        $select = "SELECT * FROM users  JOIN tshift ON users.id=tshift.uid  WHERE name LIKE {$name}";

    }
    else
    {
        $select = "SELECT * FROM users  JOIN tshift ON users.id=tshift.uid  WHERE name LIKE {$name} AND udate LIKE {$date} ";

    }



   $sql = mysqli_query($db,$select);
$arr = array();
while ($r = mysqli_fetch_assoc($sql))
{
    $results= array();

    foreach($r as $key => $val){
        if(is_string($key))
            $results[$key] = $val;
    }
    array_push($arr, $results);
}
echo json_encode(array("artist" => $arr,"album" => $arr,"release" =>$arr));