I
I
Ivan Budakov2019-08-11 23:40:40
PHP
Ivan Budakov, 2019-08-11 23:40:40

After importing many cities into the database, Ajax search on them stopped working, why?

After importing all the cities of Russia into the database, the search for them stopped working, what could be the reason?

HTML and Ajax:

<div class="col-sm-4">
<input type="hidden" name="city_id" id="city_id" value="4">
<input type="text" name="geo" id="geo" class="form-control" value="Бийск, Алтайский край" onfocus="if(!$(this).hasClass('error-input')){ $('#geo_tip').removeClass('hidden'); }" onblur="$('#geo_tip').addClass('hidden');"><ul class="typeahead dropdown-menu"></ul>
<div class="info-tooltip-container hidden" id="geo_tip"><div class="info-tooltip-arrow"></div><div class="info-tooltip"><p>Введите название населенного пункта и выберите местоположение из списка.</p><p>Если Ваш населённый пункт не был найден с первых введённых букв, укажите название более полно.</p></div></div>
<script type="text/javascript">
$(function(){
$('#geo').typeahead({
ajax:{
url:langPrefix+'/ajax/geo/',
timeout:500,
displayField:'name',
triggerLength:1
}
});
});
</script>
</div>


Geo.php file:

<?php include "init.php"; ?>
<?php
if(trim($_GET['mode'])=='ajax'){
header('Content-Type: application/json; charset=utf-8');
$result=array();
$_GET['text']=reset(explode(',', trim($_GET['text'])));
if(mb_strlen(trim($_GET['text']))>=1){
$qlim=array();
foreach($config['langs'] as $lang){
$qlim[]="(`regions`.`title_".$lang."`!='' AND `cities`.`title_".$lang."` LIKE '"._F($_GET['text'])."%')";
}
$check=mysql_query("SELECT `regions`.`title_ru` as `region_".$config['lang']."`, `cities`.`title_ru`, `cities`.`city_id`, `cities`.`url` FROM `cities`, `regions` WHERE `regions`.`region_id`=`cities`.`region_id` AND `cities`.`country_id`='".$config['country']."' AND (".implode(' OR ', $qlim).") ORDER BY `cities`.`important` DESC, `regions`.`title_".$config['lang']."` ASC, `cities`.`title_".$config['lang']."` ASC LIMIT 10;");
if(mysql_num_rows($check)){
while($city=mysql_fetch_assoc($check)){
$result[]=array('id'=>$city['city_id'], 'url'=>$city['url'], 'name'=>$city['title_ru'], 'region'=>$city['region_'.$config['lang']]);
}
}
}
echo json_encode($result);
exit;
}
?>


Thanks in advance for your help in finding the problem.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
I
Ivan Pavlov, 2019-08-12
@I_Pavlov

Try to create indexes on each field like `cities`.`title_*`

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question