Я все еще изучаю PHP и MySql и испытываю трудности с панелью поиска. Моя проблема в том, что я смог выбрать две таблицы из базы данных, но у меня возникли проблемы с циклом while, когда он выбрасывает все в строку поиска или иногда ничего. Я использую плагин typeahead.js для этого. Я хочу, чтобы сначала показывались страны, а затем предлагались домены, и я не хочу присоединяться к таблицам. Пожалуйста помоги.
Это мой сценарий:
<script>
$(document).ready(function(){
$('input.typeahead').typeahead({
name: 'typeahead',
remote:'search2.php?key=%QUERY',
limit : 30
});
});
</script>
Это мой php:
<?php
$key=$_GET['key'];
$array = array();
$con=mysql_connect("localhost","root","");
$db=mysql_select_db("test_db",$con);
$query=mysql_query("select * from tbl_sample where country LIKE '%{$key}%' AND domain LIKE '%{$key}%' ");
while($row=mysql_fetch_assoc($query)){
$array[] = $row['country'];
$array[] = $row['domain'];
}
echo json_encode($array);
?>
То, что вы спрашиваете, немного расплывчато, учитывая, что вы вообще не описали нам вторую таблицу, поэтому я предполагаю, что вы просто хотите сделать два отдельных выбора из одной и той же таблицы. Это сделано так, и страны будут на первом месте:
$query=mysql_query("select country as 'result' from tbl_sample where country LIKE '%{$key}%' UNION select domain as 'result' from tbl_sample where domain LIKE '%{$key}%' ");
while($row=mysql_fetch_assoc($query)){
$array[] = $row['result'];
}
Других решений пока нет …