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

Форум MySQL

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

 

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

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

тема: Регистрозависимый поиск в бд
 
 автор: serjinio   (16.01.2009 в 01:33)   письмо автору
 
 

$ru=array('А','а','В','Е','е','К','М','Н','О','о','Р','р','С','с','Т','Х','х');
$en=array('A','a','B','E','e','K','M','H','O','o','P','p','C','c','T','X','x');
FROM `users` 
WHERE  
`u_log`  LIKE '$n' OR 
`u_log`  LIKE '".str_replace($ru,$en,$n)."' OR
`u_log`  LIKE '".str_replace($en,$ru,$n)."' 
",$db);
if (!$Q) exit('Bad MySql');
if(mysql_num_rows($Q)>0) 
$err='Увы... Такой пользователь уже существует';


в БД пользователь Wrt при проверке wrt --находит в базе...(.Такой пользователь уже существует...)
таблица в кодировке utf8_general_ci --- регистронезависимая
как организовать регистрозависимую проверку

  Ответить  
 
 автор: а-я   (16.01.2009 в 04:33)   письмо автору
 
   для: serjinio   (16.01.2009 в 01:33)
 

укажи BINARY

  Ответить  
 
 автор: serjinio   (16.01.2009 в 08:09)   письмо автору
 
   для: а-я   (16.01.2009 в 04:33)
 

Для поля u_log или для всей таблицы users ???
$n-принимает как кириллицу ,так и латиницу....

  Ответить  
 
 автор: ols   (17.01.2009 в 00:07)   письмо автору
 
   для: serjinio   (16.01.2009 в 08:09)
 

>Для поля u_log или для всей таблицы users ???
Для одного поля в самом запросе

  Ответить  
 
 автор: Trianon   (17.01.2009 в 00:23)   письмо автору
 
   для: serjinio   (16.01.2009 в 01:33)
 

>таблица в кодировке utf8_general_ci

Интересно, как Вам это удалось?

  Ответить  
 
 автор: serjinio   (17.01.2009 в 10:45)   письмо автору
 
   для: Trianon   (17.01.2009 в 00:23)
 

Вопрос не понятен ..наверно в вопросе заложен скрытый подвох....
ALTER TABLE `users` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci


-- 
-- Структура таблицы `users`
-- 

CREATE TABLE `users` (
  `u_id` int(11) unsigned NOT NULL auto_increment,
  `u_log` varchar(32) character set cp1251 collate cp1251_general_cs default NULL,
  `u_pass` varchar(32) NOT NULL,
  `u_salt` char(5) default NULL,
  `u_mail` varchar(64) NOT NULL,
  `u_regdate` timestamp NOT NULL default '0000-00-00 00:00:00',
  `u_last_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `u_status` tinyint(2) NOT NULL default '0',
  `u_activat` tinyint(2) NOT NULL default '0',
  `u_ip` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`u_id`),
  UNIQUE KEY `u_mail` (`u_mail`),
  UNIQUE KEY `u_log` (`u_log`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;


Когда поле u_log в кодировке cp1251_general_cs сравнение латиницы и кирилицы происходит....
насколько правильна данная структура ?

  Ответить  
 
 автор: Trianon   (17.01.2009 в 11:15)   письмо автору
 
   для: serjinio   (17.01.2009 в 10:45)
 

>Вопрос не понятен ..наверно в вопросе заложен скрытый подвох....
>
ALTER TABLE `users` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci


И Вам удалось успешно выполнить этот запрос, причем так, чтобы collation установилось в состояние utf8_general_ci?

Мне, например, не удалось.

  Ответить  
 
 автор: serjinio   (17.01.2009 в 12:36)   письмо автору
128 Кб
 
   для: Trianon   (17.01.2009 в 11:15)
 

Может я что-то не правильно делаю или мы говорим о разных вещах...

  Ответить  
 
 автор: serjinio   (17.01.2009 в 12:40)   письмо автору
189.4 Кб
 
   для: serjinio   (17.01.2009 в 12:36)
 

еще скрин...

  Ответить  
 
 автор: USED   (19.01.2009 в 09:54)   письмо автору
 
   для: serjinio   (16.01.2009 в 01:33)
 

Насколько хватило фантазии понять вопрос, могу посоветовать


WHERE LOWER(`поле`) LIKE '%" . mb_strtolower ( $переменная ) . "%'

  Ответить  
Rambler's Top100
вверх

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