За последние 24 часа нас посетили 22558 программистов и 1015 роботов. Сейчас ищут 715 программистов ...

Живой поиск по городам. Проблема с Mysql запросом

Тема в разделе "MySQL", создана пользователем Torchok23, 23 ноя 2015.

  1. Torchok23

    Torchok23 Новичок

    С нами с:
    23 ноя 2015
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте. Проблема с запросом к базе.
    Есть две таблицы: в 1-ой (belcity) четыре столбца - city_id, country_id, region_id, name;
    во 2-ой (belregion) четыре столбца - region_id, country_id, city_id, rname.
    В таблицах одинаковый region_id, по нему нужно выбрать область
    В итоге нужно чтобы при вводе названия города выскакивали подсказки типа "Минск, Минская область"
    Все работает нормально, но подсказка получается вида ", Минская область", т.е. пропадает название города.
    Проблема тут: SELECT rname FROM belregion WHERE region_id IN (SELECT region_id FROM belcity WHERE name IN (SELECT name FROM belcity WHERE name LIKE '". $search ."%'))
    Код (PHP):
    1. $db = mysql_connect("localhost","root","");
    2.     mysql_select_db("cities",$db);
    3.     
    4.     $query = mysql_query("SELECT rname FROM belregion WHERE region_id IN (SELECT region_id FROM belcity WHERE name IN (SELECT name FROM belcity WHERE name LIKE '". $search ."%'))",$db) or die ("error");
    5.     if(mysql_num_rows($query) > 0){
    6.         $sql = mysql_fetch_array($query);
    7.         do{
    8.             echo "<div>".$sql['name'].", ".$sql['rname']."</div>";
    9.         }while($sql = mysql_fetch_array($query));
    10.     }else{
    11.         echo "Нет результатов";
    12.     }
    13.  
    Помогите составить нормальный запрос
     
  2. Torchok23

    Torchok23 Новичок

    С нами с:
    23 ноя 2015
    Сообщения:
    4
    Симпатии:
    0
    Решено
    Код (PHP):
    1. $db = mysql_connect("localhost","root","");
    2.     mysql_select_db("cities",$db) or die('ass');
    3.     
    4.     
    5.     $query = mysql_query("SELECT belregion.rname, belcity.name FROM belregion INNER JOIN belcity ON belregion.r_id = belcity.region_id WHERE belcity.name LIKE '". $search ."%'",$db) or die (mysql_error());
    6.     if(mysql_num_rows($query) > 0){
    7.         $sql = mysql_fetch_array($query);
    8.         do{
    9.             echo "<div>".$sql['name'].", ".$sql['rname']."</div>";
    10.         }while($sql = mysql_fetch_array($query));
    11.     }else{
    12.         echo "Нет результатов";
    13.     }