[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Яндекс = ЯнДеКс = ЯНДЕКС как?
WisesT
Добрый день.
Есть у меня страница добавления клиентов со следующим обработчиком


<?php
include("config.php");
$data = array();

$data [] = 'firma';
$data [] = 'adress';
$data [] = 'tel';

if (isset($_POST['vvod'])) {
$firma = $_POST['firma'];
$adress = $_POST['adress'];
$tel = $_POST['tel'];

if ($firma != '' and $adress != '' and $tel != '') {
$proadd = mysql_query("SELECT * FROM `clients` WHERE `firma` = '".$firma."'");
if(mysql_num_rows($proadd) > 0){
?> <script> alert('Такой клиент уже есть в базе!'); </script><?

}
else{
$add = mysql_query("INSERT INTO clients(firma,adress,tel) VALUES ('$firma','$adress','$tel')");
header("Location: ".$_SERVER['REQUEST_URI']);
}
}

else
{
echo "Вы заполнили не все поля";
}
}

?>

Но сейчас для него Яндекс и ЯНДЕКС - разные клиенты. Тоесть если в базе есть клиент "Яндекс", а я попытаюсь добавить клиента "ЯНДЕКС", то добавление пройдет успешно.
Как научить его приравнивать регистр Яндекс=ЯНДЕКС=ЯНдеКс и тд?

вроде как через lcase или .strtoupper можно. Но я не пойму куда и как их подставить.
Подскажите пожалуйста.



Спустя 1 минута, 9 секунд (16.02.2012 - 14:22) vital написал(а):
mb_strtolower() или
mb_strtoupper()
перед записью в базу

Спустя 4 минуты, 39 секунд (16.02.2012 - 14:26) WisesT написал(а):
mb_strtolower($add);
$add = mysql_query("INSERT INTO clients(firma,adress,tel) VALUES ('$firma','$adress','$tel')");

так? О.о

Спустя 47 секунд (16.02.2012 - 14:27) alexbel2404 написал(а):
collation у базы попробуй поставить utf8_general_ci

Спустя 6 минут, 45 секунд (16.02.2012 - 14:34) nugle написал(а):
так
$var = mb_strtolower($var, 'UTF-8');
Потом переменную(она уже новая) вносишь в базу вместе со всеми значениями

Спустя 24 минуты, 49 секунд (16.02.2012 - 14:59) alexbel2404 написал(а):
нужно можно еще уникальный индекс на поле повесить, тогда mysql_query будет возвращать ошибку.

Спустя 1 час, 26 минут, 53 секунды (16.02.2012 - 16:26) WisesT написал(а):
Стоп. Мне нужн что бы оно проверяло во всех регистрах, а не вносило в одном регистре.

Спустя 2 минуты, 46 секунд (16.02.2012 - 16:28) alexbel2404 написал(а):
ты пробовал мои варианты?

Спустя 2 минуты, 11 секунд (16.02.2012 - 16:30) WisesT написал(а):
Цитата (alexbel2404 @ 16.02.2012 - 13:28)
ты пробовал мои варианты?

Пробовать нельзя) База рабочая. Боюсь угробить.=)

Спустя 38 секунд (16.02.2012 - 16:31) Панч написал(а):

Спустя 2 минуты, 47 секунд (16.02.2012 - 16:34) WisesT написал(а):
Цитата (alexbel2404 @ 16.02.2012 - 11:27)
collation у базы попробуй поставить utf8_general_ci

Не помогло

Спустя 1 минута, 6 секунд (16.02.2012 - 16:35) nugle написал(а):
WisesT
я просто не смотрел, что ты имел ввиду
приведи к lower свою переменную и делай запрос так
select * from your_db where lower(your_table_for_select) like '%string%'

Спустя 4 минуты, 33 секунды (16.02.2012 - 16:40) WisesT написал(а):
$proadd = mysql_query("SELECT * FROM `clients` WHERE lower(`firma`) = '".$firma."'");

??
или еще лайк добавлять?

Спустя 1 минута, 42 секунды (16.02.2012 - 16:41) nugle написал(а):
WisesT
попробуй так как ты написал, но прежде, $firma тоже приведи к lower регистру

Спустя 2 минуты, 15 секунд (16.02.2012 - 16:43) WisesT написал(а):
ого. я ща в этих скобках-кавычках запутюсь. Можшь сделать?

Спустя 3 минуты, 11 секунд (16.02.2012 - 16:47) nugle написал(а):
Что там делать то?

$var = mb_strtolower($var, 'UTF-8');
$proadd = mysql_query("SELECT * FROM `clients` WHERE lower(`firma`) = '".$var."'");

Спустя 17 минут, 17 секунд (16.02.2012 - 17:04) WisesT написал(а):
неа. не работает

Спустя 3 минуты, 41 секунда (16.02.2012 - 17:08) nugle написал(а):
тогда делай как я с лайком показывал, лайк регистронезависим

Спустя 6 минут, 59 секунд (16.02.2012 - 17:15) WisesT написал(а):
это как?

Спустя 38 секунд (16.02.2012 - 17:15) Панч написал(а):
MySQL пофиг на регистр т.е Яндекс и ЯНДЕКС для него одно и тоже
значит либо данные не в той кодировке передаются, либо в $firma лишние символы попадают

Спустя 4 минуты, 57 секунд (16.02.2012 - 17:20) nugle написал(а):
WisesT
как я показывал выше + гугл тебе в помощь

Спустя 50 минут, 17 секунд (16.02.2012 - 18:10) alexbel2404 написал(а):
Цитата (WisesT @ 16.02.2012 - 17:34)
Цитата (alexbel2404 @ 16.02.2012 - 11:27)
collation у базы попробуй поставить utf8_general_ci

Не помогло

не может быть такого. В поле фирма кстати тоже поставь collation = general_ci
http://imageshack.us/photo/my-images/217/91660574.png/

Спустя 38 минут, 29 секунд (16.02.2012 - 18:49) WisesT написал(а):
да. все работает. Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.