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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Неправильный вывод кириллицы при условие "order by name"
 
 автор: BARTON   (22.12.2005 в 17:56)   письмо автору
 
 

Имею проблему :(
При выведении из базы данных названий фильмов, делаю:
SELECT * FROM dvd ORDER BY name (где name-название фильмов на киррилице)
На хосте получается вот это :( :
http://bartondvd.netktr.org/index.php
Вообще не понятно в каком порядке выводяться, где то буквы идут по алфавиту, где то нет...
На локальном сервере всё работает отлично, названия фильмов выводяться строго по алфавиту.

П.С.
На хосте стоит MySQL 5.0
в файл .htaccess добавлено AddDefaultCharset WINDOWS-1251

Очень нужна Ваша помощь!
Заранее благодарен за отклики и советы!

   
 
 автор: cheops   (22.12.2005 в 17:58)   письмо автору
 
   для: BARTON   (22.12.2005 в 17:56)
 

1) На локальном хосте какая версия базы данных MySQL используется?
2) На сервере какую кодировку для таблиц по умолчанию выбирали?

   
 
 автор: BARTON   (22.12.2005 в 19:02)   письмо автору
 
   для: cheops   (22.12.2005 в 17:58)
 

-1) На локальном хосте какая версия базы данных MySQL используется?
MySQL4

- 2) На сервере какую кодировку для таблиц по умолчанию выбирали?
Честно говоря не понял вопроса, но скажу что знаю, кодировку я не выбирал, но сервtре стоит phpMyAdmin 2.6.0 и когда я захожу через браузер на базу по умолчанию стоит кодировка Western (ISO-8859-1) , для того чтобы в моей базу правильно отбражалась киррилица перевожу кодировку в Cyrillic Windows 1251.

   
 
 автор: BARTON   (22.12.2005 в 19:08)   письмо автору
 
   для: BARTON   (22.12.2005 в 19:02)
 

Забыл добавить, что на локалке стоит связка Denwer

   
 
 автор: cheops   (22.12.2005 в 20:52)   письмо автору
 
   для: BARTON   (22.12.2005 в 19:02)
 

>MySQL4
Дело вот в чём, начиная с версии 4.1 каждой таблице можно присваивать собственную кодировку при помощи ключевого слова DEFAULT CHARSET, например,
CREATE TABLE catalogs (
  id_catalog int(11) NOT NULL auto_increment,
  'name' tinytext NOT NULL,
  PRIMARY KEY  (id_catalog),
  FULLTEXT KEY 'name' ('name')
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Если вы её не указываете - будет сортировка и кодировка будет latain1, и соответственно, русский текст будет сортироваться неправильно.

   
 
 автор: BARTON   (22.12.2005 в 22:48)   письмо автору
 
   для: cheops   (22.12.2005 в 20:52)
 

Спасибо за советы cheops !
У меня так и было создание таблиц с ENGINE=MyISAM DEFAULT CHARSET=cp1251, но если заливать в таком ввиде , то phpMyAdmin ругается когда я пробую залить sql файл, вот что пишет:
http://bartondvd.netktr.org/oshibka.GIF
если меняю на TYPE=MyISAM AUTO_INCREMENT=403, вместо ENGINE=MyISAM DEFAULT CHARSET=cp1251 , то всё проходит(загружается) нормально...
Вообщем нужна помощь!

   
 
 автор: cheops   (23.12.2005 в 00:15)   письмо автору
 
   для: BARTON   (22.12.2005 в 22:48)
 

Замените ключевое слово ENGINE на TYPE, но оставьте DEFAULT CHARSET - что пишет?

   
 
 автор: BARTON   (23.12.2005 в 01:22)   письмо автору
 
   для: cheops   (23.12.2005 в 00:15)
 

Ошибка

SQL-запрос:

CREATE TABLE 'comments' (
'Id' int( 11 ) NOT NULL AUTO_INCREMENT ,
'date_add' date default NULL ,
'name_film' varchar( 64 ) default NULL ,
'comp' int( 1 ) default NULL ,
'comment' text,
'film_id' int( 11 ) default NULL ,
'id_autor' int( 11 ) default NULL ,
'name' varchar( 32 ) default NULL ,
PRIMARY KEY ( 'Id' )
) TYPE = MYISAM DEFAULT CHARSET = cp1251

Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax near 'DEFAULT CHARSET=cp1251' at line 11

   
 
 автор: cheops   (23.12.2005 в 14:02)   письмо автору
 
   для: BARTON   (23.12.2005 в 01:22)
 

А если убрать все кавычки?
CREATE TABLE comments (
Id int( 11 ) NOT NULL AUTO_INCREMENT ,
date_add date default NULL ,
name_film varchar( 64 ) default NULL ,
comp int( 1 ) default NULL ,
comment text,
film_id int( 11 ) default NULL ,
id_autor int( 11 ) default NULL ,
name varchar( 32 ) default NULL ,
PRIMARY KEY ( Id )
) TYPE = MYISAM DEFAULT CHARSET = cp1251

   
 
 автор: BARTON   (23.12.2005 в 18:31)   письмо автору
 
   для: cheops   (23.12.2005 в 14:02)
 

неа :(
Error

SQL-query:

CREATE TABLE comments (
'Id' int( 11 ) NOT NULL AUTO_INCREMENT ,
'date_add' date default NULL ,
'name_film' varchar( 64 ) default NULL ,
'comp' int( 1 ) default NULL ,
'comment' text,
'film_id' int( 11 ) default NULL ,
'id_autor' int( 11 ) default NULL ,
'name' varchar( 32 ) default NULL ,
PRIMARY KEY ( 'Id' )
) TYPE = MYISAM DEFAULT CHARSET = cp1251

MySQL said: Documentation
#1064 - You have an error in your SQL syntax near 'DEFAULT CHARSET=cp1251' at line 11

   
 
 автор: BARTON   (23.12.2005 в 18:35)   письмо автору
 
   для: BARTON   (23.12.2005 в 18:31)
 

Вот , что в документации написано про эту ошибку:
#

Error: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)

Message: %s near '%s' at line %d

   
Rambler's Top100
вверх

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