我正在尝试创建即时搜索以从我的数据库中提取数据。 我希望它能够从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));
答案 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));