2016-05-30 6 views
0

データベースからデータを取得するインスタント検索を作成しようとしています。 2つの異なるテーブルから2つのフィールドを検索できるようにしたい。これまでのところ、いずれかのテーブルの特定のフィールドを1つ選択すると、現在は正常に動作します。それはデータを引き出して表示していますが、私は検索を特定のものにしたいと思います。php jquery jsonインスタント検索

たとえば、2つのテーブルがあり、1つはアーティスト用で、もう1つはレコード用です。アーティストの名前を入力すると、そのアーティストのすべてのレコードが表示されますが、名前の横にリリースの日付を入力すると、特定のレコードが表示され、他のレコードは表示されません。それが私がそれを働かせる方法です。ここで

は、私がこれまで持っているものです:私はどうか知りません動作するようにそれを得たか疑問またはどのようにこのような何かを一日だろうもののため

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

、これはあります最善の方法ですが、それは今のところ行います。

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)); 
関連する問題