Вернуться   Форум SAPE.RU > Другое > Курилка

-->
Ответ
 
Опции темы
Старый 22.11.2010, 00:05   #1
Туру-туру
 
Аватар для bla-bla-bla
 
Регистрация: 11.02.2008
Адрес: Украина
Сообщений: 1,224
Вес репутации: 241
bla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущее
Question Вопрос по кодировке MySQL

У меня есть скрипт Яндекс.Карт, который делает обратное геокодирование из точек координат в название области. Этот скрипт нормально работал на денвере, но меня не устраивает скорость его работы (сейчас медленный интернет у меня), я его перезалил на сервер. Но на сервере происходит проблема с кодировкой, в базу все добавляется в виде "???????". База у меня в кодировке windows-1251, яндекс отдает xml файл с кодировкой utf-8, в скрипте перед добавлением в базу меняю кодировку
PHP код:
$oblname mb_convert_encoding($oblname"windows-1251""utf-8"); 
. Но это не работает на сервере. Отличие от работы только в том что на локальном сервере работал с базой под root, на сервере как пользователь. Подскажите как решить проблему с кодировкой.

Параметры локального сервера:
# Server: localhost via TCP/IP
# Server version: 5.1.40-community
# Protocol version: 10
# MySQL charset: UTF-8 Unicode (utf8)

Параметры сервера:
* Сервер: Localhost via UNIX socket
* Версия сервера: 5.0.90
* Версия протокола: 10
* MySQL-кодировка: UTF-8 Unicode (utf8)
__________________
Нормально делай - нормально будет!
bla-bla-bla вне форума   Ответить с цитированием
Старый 22.11.2010, 00:13   #2
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
База у меня в кодировке windows-1251
при подключении к базе SET NAMES с указанием кодировки передачи данных делали?
Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
$oblname = mb_convert_encoding($oblname, "windows-1251", "utf-8");
это лишь перекодирует строку. на базу не влияет.
Последний Герой вне форума   Ответить с цитированием
Старый 22.11.2010, 00:37   #3
Туру-туру
 
Аватар для bla-bla-bla
 
Регистрация: 11.02.2008
Адрес: Украина
Сообщений: 1,224
Вес репутации: 241
bla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Последний Герой Посмотреть сообщение
это лишь перекодирует строку. на базу не влияет.
я ее кодирую и вставляю в базу

PHP код:
mysql_query("UPDATE `{$config['tablename']}` SET oblname = '".mysql_real_escape_string($oblname)."' WHERE id = {$row['id']}") or die("Ошибка при обновлении данных в таблице: ".mysql_error()); 
Вот запрос на добавление, пытался добавить но у меня ничего кроме "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET NAMES 'cp1251'' at line" не получилось, как правильно дописать SET NAMES?
__________________
Нормально делай - нормально будет!
bla-bla-bla вне форума   Ответить с цитированием
Старый 22.11.2010, 00:41   #4
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
я ее кодирую и вставляю в базу
кодировать нужно именно в кодировку соединения (если она не совпадает с кодировкой базы, то указать еще перекодирование в самом SQL запросе)

Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
SET NAMES 'cp1251''
кавычки должны быть правильно расстановлены
Последний Герой вне форума   Ответить с цитированием
Старый 22.11.2010, 00:55   #5
Туру-туру
 
Аватар для bla-bla-bla
 
Регистрация: 11.02.2008
Адрес: Украина
Сообщений: 1,224
Вес репутации: 241
bla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущее
По умолчанию

Последний Герой, спасибо, разобрался. ошибка была в том что нужно было сделать mysql_query сразу после конекта к базе. а я делал в цикле while.
__________________
Нормально делай - нормально будет!
bla-bla-bla вне форума   Ответить с цитированием
Старый 22.11.2010, 01:10   #6
Bannеd
 
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
Последний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущееПоследний Герой - прекрасное будущее
По умолчанию

Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
ошибка была в том что нужно было сделать mysql_query сразу после конекта к базе. а я делал в цикле while.
это не ошибка.
Последний Герой вне форума   Ответить с цитированием
Старый 24.11.2010, 22:20   #7
Туру-туру
 
Аватар для bla-bla-bla
 
Регистрация: 11.02.2008
Адрес: Украина
Сообщений: 1,224
Вес репутации: 241
bla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущее
По умолчанию

появился еще один вопрос по базе.
Допустим у меня есть таблица с именем tablename, в базе dbname
Цитата:
id countryid typid oblastid info
1 1 1 2 Тут текст
2 3 2 2 Тут текст
3 1 2 2 Тут текст
4 2 1 2 Тут текст
5 2 2 1 Тут текст
6 3 2 1 Тут текст
7 2 1 1 Тут текст
8 2 1 1 Тут текст
9 2 1 2 Тут текст
10 1 2 2 Тут текст
11 3 1 2 Тут текст
12 2 2 2 Тут текст
13 3 2 1 Тут текст
14 3 1 2 Тут текст
15 1 2 1 Тут текст
как можно вывести результаты отсортированые по нескольким критериям? Нужно получить строки где countryid больше 2, и typid больше 1. Можно ли этот запрос записать в один mysql_query?
PHP код:
<?
mysql_connect
("localhost","root","") or die (mysql_error());

mysql_select_db ("dbname") or die (mysql_error());

mysql_query ("SET NAMES cp1251");
mysql_query ("SELECT * FROM `tablename` where `countryid`  = '2'");
mysql_query ("SELECT * FROM `tablename` where `typid`  > '1'");

$d mysql_query("SELECT * FROM `tablename`");

while(
$info mysql_fetch_array$d))
{
echo 
$info['info'].' '$info['countryid'].' '.$info['typid'].' '.$info['oblastid']."<br>";

}
?>
Добавлено через 19 минут
__________________
Нормально делай - нормально будет!

Последний раз редактировалось bla-bla-bla; 24.11.2010 в 22:20. Причина: Добавлено сообщение
bla-bla-bla вне форума   Ответить с цитированием
Старый 24.11.2010, 22:46   #8
Эксперт
 
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 244
eresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущее
По умолчанию

Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
Код:
mysql_query ("SELECT * FROM `tablename` where `countryid`  = '2'");
mysql_query ("SELECT * FROM `tablename` where `typid`  > '1'");
В чём тайный смысл делать запрос на выборку и не сохранять результат?
__________________
Партнёрка знакомств с блоком SAPE. Сапа без расходов на хостинг!
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS)
eresik вне форума   Ответить с цитированием
Старый 24.11.2010, 23:31   #9
Туру-туру
 
Аватар для bla-bla-bla
 
Регистрация: 11.02.2008
Адрес: Украина
Сообщений: 1,224
Вес репутации: 241
bla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущееbla-bla-bla - прекрасное будущее
По умолчанию

спасибо, уже подсказали.
mysql_query ("SELECT * FROM `tablename` where `countryid` = '2' AND `typid` > '1'");
__________________
Нормально делай - нормально будет!
bla-bla-bla вне форума   Ответить с цитированием
Старый 25.11.2010, 09:14   #10
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 238
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Цитата:
Сообщение от bla-bla-bla Посмотреть сообщение
where `countryid` = '2' AND `typid` > '1';
Это не сортировка, а условия выборки.
Условия сортировки идут после ORDER BY
ahsinis вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по кодировке сайта Старик Вопросы от новичков 8 19.10.2009 16:03
Вопрос по mysql wUUb Разработка и сопровождение сайтов 9 31.08.2009 06:12
Вопрос по mysql Hanapi Разработка и сопровождение сайтов 11 22.11.2008 22:05
Вопрос по неправильно кодировке Rigor Ошибки при работе с системой 7 30.04.2008 15:07
Вопрос по кодировке koro Вопросы по работе системы 0 16.08.2007 05:32


Часовой пояс GMT +3, время: 03:05.