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

Форум MySQL

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

 

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

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

тема: Не выводит руcский текст только с одной таблицы?
 
 автор: xpom   (15.02.2008 в 12:06)   письмо автору
 
 

Подскажите пожалуйста, почему, может выводить с одной таблицы каракули вместо русского текста, в то время как с другой таблицы выводит отлично русский текст?

   
 
 автор: xpom   (15.02.2008 в 13:20)   письмо автору
 
   для: xpom   (15.02.2008 в 12:06)
 

Т.е. это что-то с настройками на локальной машине, потомучто, те таблицы что раньше создавались отображают нормально, а те что сейчас не отображают, подскажите, плиз, что нужно исправить в настройках, чтобы создавались нормальные таблицы?

   
 
 автор: xpom   (15.02.2008 в 13:44)   письмо автору
 
   для: xpom   (15.02.2008 в 13:20)
 

Подскажи, где нужно поменять кодировку, чтобы русские буквы отображались?

   
 
 автор: cheops   (15.02.2008 в 13:53)   письмо автору
 
   для: xpom   (15.02.2008 в 13:44)
 

У вас данные в какой кодировке?

   
 
 автор: xpom   (15.02.2008 в 14:02)   письмо автору
 
   для: cheops   (15.02.2008 в 13:53)
 

Как указать при создании таблицы кодировку русского текста?
Вот скрипт создания таблицы:

CREATE TABLE IF NOT EXISTS Table (
      tab_ID          INTEGER NOT NULL AUTO_INCREMENT,
      podtab         INTEGER NOT NULL,
      Name         VARCHAR(150),
      Primary Key (tab_ID),
      FOREIGN KEY (podtab ) REFERENCES podtab (pod_ID)
    );

   
 
 автор: arseny   (15.02.2008 в 15:37)   письмо автору
 
   для: xpom   (15.02.2008 в 14:02)
 

CREATE TABLE IF NOT EXISTS Table (
tab_ID INTEGER NOT NULL AUTO_INCREMENT,
podtab INTEGER NOT NULL,
Name VARCHAR(150),
Primary Key (tab_ID),
FOREIGN KEY (podtab ) REFERENCES podtab (pod_ID)
)
CHARACTER SET cp1251 COLLATE cp1251_general_ci;

   
 
 автор: xpom   (15.02.2008 в 15:57)   письмо автору
 
   для: arseny   (15.02.2008 в 15:37)
 

Создаю так таблицу и почему-то не заполняет её данными??
Вот ввожу данные:

INSERT INTO Podcat (podtab, Name) VALUES
    ('1', 'Текст'),
    ('2', 'Текст еще'),
    ('1', 'Текст');

Выдает ошибку:
ERROR 1406 <22001> Data too long for column 'Name' at row 1

Что это может значить?

   
 
 автор: xpom   (15.02.2008 в 15:57)   письмо автору
 
   для: arseny   (15.02.2008 в 15:37)
 

Создаю так таблицу и почему-то не заполняет её данными??
Вот ввожу данные:

INSERT INTO Table (podtab, Name) VALUES
    ('1', 'Текст'),
    ('2', 'Текст еще'),
    ('1', 'Текст');

Выдает ошибку:
ERROR 1406 <22001> Data too long for column 'Name' at row 1

Что это может значить?

   
 
 автор: arseny   (15.02.2008 в 16:04)   письмо автору
 
   для: xpom   (15.02.2008 в 15:57)
 

не уверен что дело в этом, но по моему стоит имя таблицы Table взять в кавычки `Table`

   
 
 автор: xpom   (15.02.2008 в 16:09)   письмо автору
 
   для: arseny   (15.02.2008 в 16:04)
 

Взял в кавычки начало выводить ошибку с синтаксисом, значит дело не в этом????
Не пойму, почему так может быть, без строчки
CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Вводит данные, но каракули вместо русского текста, а со строчкой не вводит, да и длина текста в колонке Name по два слова, должна вроде и влезать???
Помоготи, плиз кто знает что это???

   
 
 автор: arseny   (15.02.2008 в 16:58)   письмо автору
 
   для: xpom   (15.02.2008 в 16:09)
 

дропни обе таблицы.
пересоздай:

CREATE TABLE `podtab` (
`podID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`podID`)
)
ENGINE = InnoDB
CHARACTER SET cp1251 COLLATE cp1251_general_ci; (про эту таблицу не знаю почти ничего, структуру если что поменяй)

CREATE TABLE `test`.`Table` (
`tab_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`podtab` INTEGER UNSIGNED NOT NULL,
`Name` VARCHAR(150),
PRIMARY KEY (`tab_ID`),
CONSTRAINT `podtab` FOREIGN KEY `podtab` (`podtab`)
REFERENCES `podtab` (`podID`)
)
ENGINE = InnoDB;

INSERT INTO `podtab`(`Name`) VALUES ('ABC'),('DEF'),('GHI');
INSERT INTO `Table` (podtab, Name) VALUES (1, 'текст'), (2, 'текст2'), (1, 'текст3');

у меня все работает

   
 
 автор: arseny   (15.02.2008 в 16:59)   письмо автору
 
   для: arseny   (15.02.2008 в 16:58)
 

Извини, чуть по другому:
CREATE TABLE `podtab` (
`podID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`podID`)
)
ENGINE = InnoDB
CHARACTER SET cp1251 COLLATE cp1251_general_ci;
(про эту таблицу не знаю почти ничего, структуру если что поменяй)

CREATE TABLE `Table` (
`tab_ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`podtab` INTEGER UNSIGNED NOT NULL,
`Name` VARCHAR(150),
PRIMARY KEY (`tab_ID`),
CONSTRAINT `podtab` FOREIGN KEY `podtab` (`podtab`)
REFERENCES `podtab` (`podID`)
)
ENGINE = InnoDB;
CHARACTER SET cp1251 COLLATE cp1251_general_ci;

INSERT INTO `podtab`(`Name`) VALUES ('ABC'),('DEF'),('GHI');
INSERT INTO `Table` (podtab, Name) VALUES (1, 'текст'), (2, 'текст2'), (1, 'текст3');

   
 
 автор: xpom   (15.02.2008 в 17:14)   письмо автору
 
   для: arseny   (15.02.2008 в 16:59)
 

Дропнул, теперь та же ситуация с таблицей podtab
Сделал по структуре
CREATE TABLE `podtab` (
`podID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`podID`)
)
ENGINE = InnoDB
CHARACTER SET cp1251 COLLATE cp1251_general_ci; 


Так данные не вводит,

INSERT INTO podtab(Name) VALUES ('ABC'),('DEF'),('GHI');


А у вас какие версии стоят? Может не совпадают версии

   
 
 автор: arseny   (15.02.2008 в 17:58)   письмо автору
 
   для: xpom   (15.02.2008 в 17:14)
 

бери все в кавычки
все названия таблиц и полей бери в `такие кавычки`

INSERT INTO `podtab`(`Name`) VALUES ('ABC'),('DEF'),('GHI');
у меня 5.1
но работать должно на любой

   
 
 автор: arseny   (15.02.2008 в 18:00)   письмо автору
 
   для: arseny   (15.02.2008 в 17:58)
 

дело не в кавычках
у меня и твой запрос на инсерт вполне работает

   
 
 автор: xpom   (15.02.2008 в 18:05)   письмо автору
 
   для: arseny   (15.02.2008 в 18:00)
 

Беру в кавычки выдает ошибку, что-то про синтаксис...

   
 
 автор: xpom   (15.02.2008 в 18:11)   письмо автору
 
   для: xpom   (15.02.2008 в 18:05)
 

беру в одинарные кавычки

   
 
 автор: xpom   (15.02.2008 в 18:17)   письмо автору
 
   для: xpom   (15.02.2008 в 18:11)
 

беру в `такие кавычки` все равно ошибка вот эта надоедливая
ERROR 1406 <22001> Data too long for column 'Name' at row 1

   
 
 автор: xpom   (15.02.2008 в 18:41)   письмо автору
 
   для: xpom   (15.02.2008 в 18:17)
 

Однозначно не в кавычках дело.
Ну что же проблема, что-то с кодировкой, где-то нужно выставить кодировку???

   
 
 автор: Faraon   (16.02.2008 в 19:51)   письмо автору
 
   для: xpom   (15.02.2008 в 18:17)
 

Поле Name какой тип имеет?

   
 
 автор: xpom   (16.02.2008 в 21:18)   письмо автору
 
   для: Faraon   (16.02.2008 в 19:51)
 

Вот структура таблицы:

CREATE TABLE IF NOT EXISTS Table (
      tab_ID          INTEGER NOT NULL AUTO_INCREMENT,
      podtab         INTEGER NOT NULL,
      Name         VARCHAR(150),
      Primary Key (tab_ID),
      FOREIGN KEY (podtab ) REFERENCES podtab (pod_ID)
    ); 

   
 
 автор: Faraon   (16.02.2008 в 21:41)   письмо автору
 
   для: xpom   (16.02.2008 в 21:18)
 

Какие данные записываются в Name?
Судя по ошибке, записываемые данные превышают тип поля, попробуйте сделать это поле типа TEXT.

   
 
 автор: xpom   (17.02.2008 в 16:50)   письмо автору
 
   для: Faraon   (16.02.2008 в 21:41)
 

В поле Name записываются данные содержащие 2 слова, вообще не большие, количество символов 14 и где в этом размере.

Я даже пробовал записывать в поле Name два симво, т.е. две буквы, и в итоге, та же ошибка.

А английские буквы заносятся прекрасно???

   
 
 автор: Trianon   (17.02.2008 в 17:31)   письмо автору
 
   для: xpom   (17.02.2008 в 16:50)
 

Какие результаты выдают у Вас следующие запросы, будучи исполненными из php-скрипта?
SELECT VERSION()
показывает версию сервера БД.

SHOW VARIABLES LIKE '%char%'
показывает состояние переменных сессии, влияющих на преобразование кодировок.

SHOW CREATE DATABASE ВашаБД
SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'ВашаБД'
показывают кодировку Вашей БД.
В зависимости от версии сервера может оказаться полезным тот или иной запрос.

SHOW CREATE TABLE ВашаТаблица
показывает кодировку Вашей таблицы

И в какой кодировке выводится страница для браузера?
Смотрится в самом браузере.

   
 
 автор: xpom   (21.02.2008 в 12:00)   письмо автору
 
   для: Trianon   (17.02.2008 в 17:31)
 

Почему-то ничего не выводиться пусто, через браузер с запросом:


 <?php
  
include ("soed.php");
?>

<?php

 $res 
mysql_query("SHOW CREATE TABLE tabl",$db);
     echo
"$res";

?>

   
 
 автор: xpom   (21.02.2008 в 12:14)   письмо автору
 
   для: xpom   (21.02.2008 в 12:00)
 

Нет извините, ошибся, выводиться при этом запросе следующее Resource id #4
Что это значит?

   
 
 автор: Trianon   (21.02.2008 в 16:27)   письмо автору
 
   для: xpom   (21.02.2008 в 12:14)
 

Как обычно, идентификатор набора строк результата.
Для вывода результата, как обычно (для запроса вида SELECT * FROM tbl ) ,
нужно применять функции mysql_num_rows(), myysql_fetch_assoc() ,
а для определения имен в наборе полей - функцию mysql_fetch_field()

   
 
 автор: xpom   (15.02.2008 в 16:59)   письмо автору
 
   для: xpom   (15.02.2008 в 16:09)
 

Создал таблицу поставив в поле с текстом COLLATE utf8_bin


CREATE TABLE IF NOT EXISTS Table (
      tab_ID          INTEGER NOT NULL AUTO_INCREMENT,
      podtab         INTEGER NOT NULL,
      Name         VARCHAR(150) COLLATE utf8_bin,
      Primary Key (tab_ID),
      FOREIGN KEY (podtab ) REFERENCES podtab (pod_ID)
    ); 


Не помогло, данные заполняются, но ситуация таже???

У кого стоит Apache2.2 и php-5.1.4 можете прикрепить настроенный файл httpd.txt хочу попробовать заменить, может что-то с настройками, потому что раньше было все ОК а потом, может это после того как я хотел настроить работу под файл .htassecc
Пожалуйста, если у кого такие настройки кинте, а то простаивает работа...

   
 
 автор: xpom   (16.02.2008 в 16:13)   письмо автору
 
   для: xpom   (15.02.2008 в 16:59)
 

Помогите, плис, решить эту проблему...

   
Rambler's Top100
вверх

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