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

Форум MySQL

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

 

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

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

тема: Регистр
 
 автор: SS   (28.04.2005 в 08:02)   письмо автору
 
 


$sql = "SELECT name FROM users WHERE name = '$name'";
list($m_name) = mysql_fetch_row( mysql_query($sql) ); 
if ( $name == $m_name) 


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

   
 
 автор: cheops   (28.04.2005 в 12:58)   письмо автору
 
   для: SS   (28.04.2005 в 08:02)
 

Здесь имеется ввиду сравнение в SQL-запросе
name = '$name'"

или в PHP коде
if ( $name == $m_name)

?

   
 
 автор: SS   (28.04.2005 в 22:22)   письмо автору
 
   для: cheops   (28.04.2005 в 12:58)
 

В коде, php, наверное. Нужно имя, введенное при регистрации, сравнить в имеющимися и ругнуться, если такое имя уже есть, и не важно, каким регистром оно набрано. В данном случае не ругается, поскольку смотрит на регистр.

   
 
 автор: cheops   (28.04.2005 в 22:42)   письмо автору
 
   для: SS   (28.04.2005 в 22:22)
 

Хм... вообще мы же два раза получается сравниваем, первый раз в базе данных, а потом в коде, может просто один раз в базе сравним
<?php
  $sql 
"SELECT name FROM users WHERE name = '$name'"
  
// Если пользователей с таким именем больше чем 0
  // ругаемся
  
(mysql_num_rowsmysql_query($sql) )>0)
  {
     exit(
"Такое имя уже существует!");
  }
?>

А MySQL, если не указано ключевое слов BINARY всегда без учёта регистра сравнивает

   
 
 автор: SS   (29.04.2005 в 02:33)   письмо автору
 
   для: cheops   (28.04.2005 в 22:42)
 

Да, спасибо, работает, но только по одному полю.
Как сделать проверку по двум полям, name и comment?
Проверить - нет ли таких же сообщений от этого юзера, для блокировки повторной отправки данных.

   
 
 автор: Serge   (29.04.2005 в 02:52)   письмо автору
 
   для: SS   (29.04.2005 в 02:33)
 

Добавить второе поле comment. Тогда запрос примет следующий вид:


<?php

$sql 
"SELECT name FROM users WHERE name = '$name' and comment = '$comment'";
// Если пользователей с таким именем больше чем 0
// ругаемся
if(mysql_num_rows(mysql_query($sql))>0)
  {
  exit(
"Такое имя и сообщение уже существует!");
  }

?>

   
 
 автор: SS   (29.04.2005 в 21:35)   письмо автору
 
   для: Serge   (29.04.2005 в 02:52)
 

Я догадался добавить [and comment = '$comment'"]. :)
Но в этом случае не работает, работает почему-то только с одним условием WHERE.

   
 
 автор: cheops   (29.04.2005 в 23:32)   письмо автору
 
   для: SS   (29.04.2005 в 21:35)
 

А в чём выражается не работа? Просто не ищет или выводит какие-нибудь ошибки? Значение $comment точно в базе присутствует и это поле имеет name == $name?

   
 
 автор: SS   (30.04.2005 в 02:42)   письмо автору
 
   для: cheops   (29.04.2005 в 23:32)
 

Неработа заключалась в том, что я сам дурак... :)
Я был уверен, что такое поле есть, ни капли не сомневался, а оно в другой таблице users, а связка с ней в таблице comments идет через id_user. Вот так... На это вчера ушло немало времени, немало...
А в остальном все замечательно!

   
Rambler's Top100
вверх

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