За последние 24 часа нас посетили 20119 программистов и 1693 робота. Сейчас ищет 1851 программист ...

Русский алфавит на американском хостинге

Тема в разделе "PHP и базы данных", создана пользователем D.SID, 17 дек 2007.

  1. D.SID

    D.SID Активный пользователь

    С нами с:
    17 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    Здравия желаю. Слабо шарю в пхп, но сейчас постоянного программиста у нас нет - приходится разбираться в мелочах самому. Столкнулся с интересной проблемкой, вот несколько фактов:
    1. Скрипты 1post.ru на других серверах выводят города из базы, сортируя их по русскому алфавиту корректно. Скрипты у нас из первых рук, но техподдержка на 1post нулевая.
    2. У нас города выводит абы как (и не по порядку внесения в базу тоже) - посмотреть можно на http://okop.org/1post.php (доска не запущена, просьба линк не распространять).
    3. Города в основном движке проекта выводятся отлично, но того, кто нам писал этот движек, я найти не могу. Вывод там нехило переплетается с другими частями исполняющего кода + вывод написан для стран с городами = мне чайнику не вставить его в код доски, чтобы он работал верно, как бы я не пытался... :D

    Код доски же по выводу городов, напротив, предельно прост:
    Код (Text):
    1. <?
    2. $sel_anw=mysql_query("SELECT * FROM ". $db_prefix ."city order by city_name");
    3. while($an=mysql_fetch_array($sel_anw)) {
    4.      $id=$an["city_id"];
    5.      $city_name=$an["city_name"];
    6. echo "<option value=\"$city_name\">$city_name</option>";
    7.  
    8. }
    9. ?>
    Ни кто не подскажет что в нем поменять/дописать, чтобы он работал верно на любом сервере?
    Или что можно написать хостеру, чтобы он там что-то у себя поправил - они жутко тупят и извиняются.

    P.S. Ваш форум изучил не весь, ибо только о нем узнал ) Но Яндекс с Гуглом перерыл основательно - ни чего умного не нашел... если готовы помочь, но за деньги - пишите цену.
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    кодировку базы смотри.
    Возможно как костыль поможет
    mysql_query("SET NAMES utf8");
    ,
    mysql_query("SET NAMES cp1251_utf8");
    или
    mysql_query("SET NAMES cp1251");
     
  3. D.SID

    D.SID Активный пользователь

    С нами с:
    17 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    Кодировка базы latin1_swedish_ci. Менял на cp1251_general_ci и на latin1_general_ci - выводит вопросы и новые города при этом тоже добавляются вопросами. Самое веселое что все города при смене обратно на latin1_swedish_ci остались вопросами - надо бэкап искать, интересно когда я его делал :) Новые города ессно нормально добавляются. Что еще посоветуете - может я неверно что-то трактовал? Кстати, слабо понял куда именно в код этот костыль лепить.
     
  4. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Проблема в том, что у вас изначально база была не в той кодировке, которая Вам нужна.
    Имеет смысл найти бекап, установить кодировку либо utf-8, либо win1251 и только потом залить бекап.
     
  5. D.SID

    D.SID Активный пользователь

    С нами с:
    17 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    Хех... имеем:
    1. При cp1251_general_ci выводит вопросы.
    2. При utf8_general_ci работает - уже лучше, но опять коряво:
    Абаза
    Барнаул
    Екатеринбург
    Воронеж
    Липецк
    Новосибирск
    Москва

    Какие еще кодировки можно попробовать, чтобы был порядок русского алфавита?
     
  6. D.SID

    D.SID Активный пользователь

    С нами с:
    17 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    Есть контакт! При latin1_general_ci все отлично работает.
    По крайней мере на первый взгляд :) Всем спасибо за советы!