Новое значение для переменной

Тема в разделе "Как сделать...", создана пользователем Izrael, 29 авг 2012.

  1. Izrael

    Izrael

    Регистр.:
    12 фев 2008
    Сообщения:
    448
    Симпатии:
    57
    Вопрос такой есть есть переменная
    Код:
    .$_POST['city_id']
    она хранит данные из формы "название города" допустим
    Код:
    <select name="city_id" id="city" style="width:300px;">
                                                      <option value="4313">Абрамцево</option>
                                                      
    когда я вывожу ее на экран то она пишет мне 4313 а мне надо чтоб она вывела название самого города Абрамцево . как это реализовать ?
    все города у меня хранятся в базе в двух ячейках city_id и name
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Код:
    $city_id = (int) $_POST['city_id'];
    if(!$city_id){
    die('error city_id');
    }
    $sql = "SELECT name
            FROM  sometable
            WHERE  city_id= $city_id";
     
    $result = mysql_query($sql);
    if (mysql_num_rows($result) ) {
      $row = mysql_fetch_assoc($result) ;
      $city_name = $row['name'];
    }
    
     
  3. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    проще заменить
    HTML:
    <option value="4313">Абрамцево</option>
    на
    HTML:
    <option value="Абрамцево">Абрамцево</option>
    И запросов к базе меньше будет.
     
    Izrael нравится это.
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Тогда надо внимание обратить на кодировку- могут быть ошибки.
    + насчёт количества запросов, один запрос по id полю очень недорогой и быстрый.
     
    Extalionez нравится это.
  5. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    KillDead, Оно конечно индексируется, но иногда сама операция подготовки запроса занимает больше времени чем сам запрос. На мелком проекте ваш вариант лучше.
     
  6. Izrael

    Izrael

    Регистр.:
    12 фев 2008
    Сообщения:
    448
    Симпатии:
    57
    дело в том что
    Код:
    <option value="4313">Абрамцево</option>
    такое значение это уже другой скрипт выдает и id полюбому тоже нужно мне .
    Пока пробую как подсказал KillDead

    вообщем у меня получилось но теперь скрипт выводит с непонятной кодировкой типо РњРѕСЃРєРІР° это что нужно сделать ?
     
  7. Simply

    Simply Писатель

    Регистр.:
    11 янв 2008
    Сообщения:
    7
    Симпатии:
    4
    KillDead подсказал совершенно верно, а насчет кодировки - посмотри в какой кодировке хранятся данные в полях БД и какая кодировка задана на странице где происходит вывод...
    Без заморочек желательно Windows-1251 (cp1251) и там и там, или utf-8 в идеале.
     
  8. xiregroup

    xiregroup Писатель

    Регистр.:
    8 сен 2012
    Сообщения:
    2
    Симпатии:
    2
    Код:
    function getCityName($id){
        $sql = mysql_query("select `name` from `cities` where `id`='".$id."' limit 1");
        if (is_resource($sql) && mysql_num_rows($sql)>0){
          return mysql_result($sql, 0);
    }
      return false;
    }
    и перед подключением сделай
    mysql_set_charset('cp1251');