인터넷을 샅샅이 뒤졌지만 내 문제와 같은 것을 찾을 수 없습니다. 여러 테이블에서 데이터를 가져올 수있는 라이브 검색 기능을 구축하려고합니다. 그것은 하나 개의 테이블로 작동하지만, 나는PHP - 여러 MySQL 테이블을 사용하는 라이브 검색
가 여기 내 PHP 코드의 밴드, 사용자, (앨범 등)에서 당길 수 있도록하려면 :
require ("includes/config/config.php");
$search_term = sanitize(htmlentities($_POST['search_term']));
if (!empty($search_term)){
$search = "(SELECT `band_id`, `band_name` FROM `bands` WHERE `band_name` LIKE '%$search_term%' LIMIT 0, 5)
UNION ALL
(SELECT `user_id`, `username` FROM `users` WHERE `username` LIKE '%$search_term%' LIMIT 0, 5)";
$query = mysqli_query($conn, $search);
$result = mysqli_num_rows($query);
while ($row = mysqli_fetch_assoc($query)){
#$user_id = $row['user_id'];
#$username = $row['username'];
$band_id = $row['band_id'];
$band_name = $row['band_name'];
$check = mysqli_num_rows($query);
if ($check != 0){
echo "<a style='text-decoration: none; color: black;' href='index.php?band=$band_id'><li class='searchResults'>" . ucfirst($band_name) . "</li></a>";
} else {
echo "<li class='searchResults'>No Results Found</li>";
}
}
}
jQuery를 :
$("#searchbar").keyup(function(){
var searchTerm = $(this).val();
$.post('search.php', { search_term: searchTerm}, function(data){
$(".searchResults").html(data);
$("#searchUl").css("display", "block");
});
});
다시 말하지만, 다른 모든 것은 잘 실행되지만 여러 가지 테이블을 쿼리하는 방법을 모르므로 href를 다르게 출력 할 수 있습니다 (예 : index.php? band = $ band_id for band and index.php? user = $ user_id 사용자 용.
"if 문"또는 "에코"에서 두 번째 옵션을 어떻게 사용합니까? –
첫 번째 옵션으로 끝났지 만, 두 개의 서로 다른 while 루프를 통해 끝내야 만 사용자 앞에 모든 밴드 결과가 표시됩니다. 분명히 좋은 수정은 아니지만, 제대로 작동하는 것이 좋습니다. 언젠가는 완성 될 것입니다. 도와 주셔서 감사합니다. –
@MitchMullvain 두 번째 솔루션을 사용하는 경우'$ row [ 'type']'형식으로 액세스 할 수 있습니다. – Chris