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

Форум MySQL

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

 

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

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

тема: Поиск текста UTF-8 по БД
 
 автор: Unkind™   (26.09.2006 в 23:38)   письмо автору
 
 

Ранее создавал подобную тему...Но опять проблема...
Я ищу по нику в таблице юзеров заведомо несуществующую запись. Вместо этого мне выдает совершенно не тот результат. Например:


<?php
//Соединение с базой данных
include("config.php");

//Допустим пользователь посылает такой логин
$_POST['login'] = "РђРђ"//Текст в UTF-8 "АА"

//Запрос
$sql mysql_query("SELECT * FROM `accounts` WHERE `login` = '".mysql_escape_string($_POST['login'])."' LIMIT 1;");

if(
mysql_affected_rows() == 0)
{
echo 
"К сожалению, пользователь ".htmlspecialchars($_POST['login'])." не найден в базе данных.<br />\n";
}
else
{
echo 
"Найдено.<br />\n";
$user_data mysql_fetch_array($sql);
$user_id $user_data['id'];
$nickname $user_data['nickname']; 
echo 
"ID: ".$user_id."<br />\n";
echo 
"Вы искали: ".$nickname."<br />\n"//При чем возвращает, гад, нормальный ник, а не ерундовый.
//Я искал "АА", мне вернуло "ЮС".
//Я заметил, что зависит от количества букв.
//Могу ввести "ЙУХ", он мне вернет данные пользователя "ОЛЯ".
}
?>


Таблица:

CREATE TABLE `chat_users` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `nickname` tinytext NOT NULL,
  `password` tinytext NOT NULL,
  `ip` tinytext NOT NULL,
  `ua` text NOT NULL,
  `level` tinyint(1) NOT NULL default '0',
  `photo` tinytext NOT NULL,
  `invisible` tinyint(1) NOT NULL default '0',
  `status` tinytext NOT NULL,
  `kick` int(11) unsigned NOT NULL default '0',
  `moder` tinytext NOT NULL,
  `reason` text NOT NULL,
  `ban` tinyint(1) NOT NULL default '0',
  `name` tinytext NOT NULL,
  `sex` tinyint(1) NOT NULL default '0',
  `email` text NOT NULL,
  `site` text NOT NULL,
  `birthday` tinytext NOT NULL,
  `from` text NOT NULL,
  `mobile` tinytext NOT NULL,
  `about` text NOT NULL,
  `posts` int(11) NOT NULL default '0',
  `answers` int(11) NOT NULL default '0',
  `gbalans` int(11) NOT NULL default '0',
  `smiles` tinyint(1) NOT NULL default '1',
  `translit` tinyint(1) NOT NULL default '0',
  `msgs` tinyint(2) NOT NULL default '5',
  `refresh` tinyint(3) unsigned NOT NULL default '20',
  `fsize` tinyint(1) NOT NULL default '1',
  `security` tinyint(1) NOT NULL default '1',
  `place` mediumint(9) NOT NULL default '0',
  `time` int(11) unsigned NOT NULL default '0',
  `intim` int(11) unsigned NOT NULL default '0',
  `key` tinytext NOT NULL,
  `regdate` tinytext NOT NULL,
  `hidden` tinyint(1) NOT NULL default '0',
  `mood` tinyint(2) NOT NULL default '0',
  `emotions` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM ;


Ниче не пойму. =/

P.S. А че это подсветка криво сработала?..

   
 
 автор: cheops   (26.09.2006 в 23:49)   письмо автору
 
   для: Unkind™   (26.09.2006 в 23:38)
 

1. А страница в какой кодировке сохранена?
2. Подсветка не сработала из-за ошибки в строке
<?php
$sql 
mysql_query("SELECT * FROM `accounts` WHERE `login` = '".mysql_escape_string($_POST['login'])' LIMIT 1;");
?>

   
 
 автор: Unkind™   (26.09.2006 в 23:53)   письмо автору
 
   для: cheops   (26.09.2006 в 23:49)
 

Страница с формой поиска в UTF-8 сохранена.

   
 
 автор: cheops   (26.09.2006 в 23:59)   письмо автору
 
   для: Unkind™   (26.09.2006 в 23:53)
 

А почему тогда используется искажённое значение логина?
<?php
  $_POST
['login'] = "РђРђ"//Текст в UTF-8 "АА"
?>

Эта строка должна выглядеть обычно
<?php
  $_POST
['login'] = "АА"//Текст в UTF-8 "АА"
?>

   
 
 автор: Unkind™   (27.09.2006 в 00:01)   письмо автору
 
   для: cheops   (26.09.2006 в 23:59)
 

Ну это я тут так набрал. Чтобы было понятнее что БД обрабатывает...Этот форум же в Windows-1251...

   
Rambler's Top100
вверх

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