Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Сообщения:  [1-10]   [11-20] 

 
 автор: Alex Boxgorn   (07.02.2007 в 11:34)   письмо автору
 
   для: ZuArt   (07.02.2007 в 11:17)
 

Спасибо Уважаемые за помощь!!! Я учту ваши замечания.
Сколько с mySQL работаю ни разу не попадал на эти грабли. ;-)

   
 
 автор: ZuArt   (07.02.2007 в 11:17)   письмо автору
 
   для: Alex Boxgorn   (07.02.2007 в 11:15)
 

поздравляю ;)
что и требовалось доказать, что скрипт работает с кодировкой utf8, а база в win1251...
Стоит пересмотреть все таблицы и их текстовые поля, в противном случае можете опять на грабли наступить ;)

   
 
 автор: Alex Boxgorn   (07.02.2007 в 11:15)   письмо автору
 
   для: ZuArt   (07.02.2007 в 11:08)
 

решение простое получилось!! Я в таблице поменял кодировку сравнения на utf8_general_ci у полей текстового типа и все заработало и стало отображаться!!!

   
 
 автор: ZuArt   (07.02.2007 в 11:08)   письмо автору
 
   для: Alex Boxgorn   (07.02.2007 в 11:04)
 

Базу лучше перезалить =) - это и проще и надежнее в нужной кодировке... Только не соображу, в какой она сейчас залита?

   
 
 автор: Alex Boxgorn   (07.02.2007 в 11:04)   письмо автору
 
   для: ZuArt   (07.02.2007 в 10:41)
 

хорошо, попробую.
Я так понимаю ниже указанные переменные character set client и character set results можно изменить программно? Или проще базу перелить в кодировке utf8 ?
character set client utf8
(Глобальное значение) cp1251
character set connection cp1251
character set database cp1251
character set results utf8
(Глобальное значение) cp1251

   
 
 автор: ZuArt   (07.02.2007 в 10:41)   письмо автору
 
   для: Alex Boxgorn   (07.02.2007 в 10:38)
 

нзчт... но импортнуть бд в другой кодировке все-таки попробуйте =) не может быть такого, что на серваке хостера стоит версия мускула, в которой ВСЕ не пашет =)))

   
 
 автор: Alex Boxgorn   (07.02.2007 в 10:38)   письмо автору
 
   для: Trianon   (07.02.2007 в 10:30)
 

Ребята, я нашел решение проблемы

ошибки 1267 из документации mySQL, она возникает на серверах mySQL от 4.1.2 до 4.1.7 включительно из-за неправильной интерпретации некоторых символов. Нужно юзать Мускул версией выше. Причем этот сервер MySQL имеет версию 4.1.7 к сожалению. А остальные, где нет ошибки, имеют версию выше. Вот и все.
Всем спасибо за участие!! Очень помогли!!

   
 
 автор: Trianon   (07.02.2007 в 10:30)   письмо автору
 
   для: Alex Boxgorn   (07.02.2007 в 10:25)
 

А это уже следствие криво проимпортированной базы данных (либо некорректно настроенного соединения с сервером).
Кодировка запроса у Вас не совпадает с кодировкой данных в таблицах. Как следствие, не совпадают алгоритмы сопоставления строк и сервер ругается, что ему не понять, как сравнивать строки в запросе со строками в таблице.

   
 
 автор: ZuArt   (07.02.2007 в 10:30)   письмо автору
 
   для: Alex Boxgorn   (07.02.2007 в 10:25)
 

Похоже, что скрипт у Вас работает в кодировке win1251 , а дамп залит в кодировке utf8 - вот отсюда и растут ноги...
попробуйте перезалить дамп, только выберите в MyAdmin кодировку cp1251_general_ci - возможно она там фигурирует как русская Windows или Windows Cyrilic

   
 
 автор: Alex Boxgorn   (07.02.2007 в 10:25)   письмо автору
 
   для: ZuArt   (07.02.2007 в 10:06)
 

Получается вот этот запрос выполняется хорошо
SELECT * FROM catalog WHERE hidezapis=0 ORDER BY `artikul` ASC

вот этот запрос выполняется с ошибкой
SELECT * FROM catalog WHERE id <9000 AND category = 'category3' AND under_category = '11'
AND hidezapis =0 ORDER BY `artikul` ASC LIMIT 0 , 30

Ответ MySQL:

#1267 - Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_unicode_ci,COERCIBLE) for operation '='

Вот этот запрос исполняется также с той же ошибкой
SELECT * FROM catalog WHERE id<9000 AND category='category3' AND hidezapis=0 ORDER BY `artikul` ASC

   

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования