![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 109
|
![]()
Есть скрипт, который обрабатывает добавление данных в БД. Перед добавлением в БД идет проверка на наличие такой же записи, если запись есть, то блочим выполнение скрипта, если записи нет добавляем. Скрипт работает на 75% наверное, т.к. он данные добавляет, если есть совпадения то останавливает скрипт. Но если например в БД есть запись "Php" а в форму ввести "php" то скрипт сделает все правильно до if`ki т.е. если смотреть вывод каждой переменной пошагово, то запрос выберет правильную строку и все отлично, но if`ka не сделает своего дела, и создаст еще одну запись но уже такого вида "php" что отличается уже введенной только регистром первой буквы, подскажите как сделать так, что бы соблюдался еще и регистр букв в этой if`ke
PHP код:
![]() ![]() ![]()
Я бы изменил мир, но бог не дает исходников (c)
И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки. ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
![]()
Для таких целей в самом mysql существует проверка на уникальность поля UNIQUE KEY
Если уж так любите php Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 109
|
![]()
На сколько я понял функция strtolower($name) все буквы переведет в нижний регистр, что на мой взгляд делать в запросе SELECT глупо, т.к. такого не сделано в запросе INSERT. И буквы могут быть и большими, и тогда запрос опять будет работать не верно, точнее даже на запрос, а сравнение в if`ke, т.к. для php регистр букв играет значение.
Если сделать кодировку столбца utf8_bin, это помогает но на 50%. Т.е. слово "Php" и "php" будут разными, но и при выборке он будет учитывать регистр букв. А мне надо что бы "php" и "Php" или даже "PhP" означали одно и тоже, при этом что бы записывались в БД именно в том виде в котором указано. UNIQUE KEY - тут не совсем понял подразумевается уникальность ячейки, или уникальность строки(id - primary key). Если уникальность строки то получается пользователю надо будет помнить все id. А если уникальность ячейки, то "PHP" "php" "PhP" каждый является по своему уникальным.
Я бы изменил мир, но бог не дает исходников (c)
И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки. ![]() Последний раз редактировалось Donatello; 05.01.2012 в 05:11. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
вопрос та какой?
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 109
|
![]() Код:
Я бы изменил мир, но бог не дает исходников (c)
И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки. ![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
![]()
Ну а я вам что написал???
Код:
P.S. Проверил UNIQUE KEY - не дает вставлять одинаковые строки в любом регистре ! Поэтому это самое корректное решение Последний раз редактировалось Cronos20; 05.01.2012 в 16:05. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 109
|
![]()
Вы мне написали запрос SELECT где все буквы переменной $name изменяются в нижний регистр. При таком запросе, если пользователь введет "Php"(как прописано в БД), а запрос переделает все в нижний, эта ифка пропустит "Php" и будет 2 одинаковые записи с разными id вот и все. А мне нужно что бы в любом случае вносилось и считывалось в том регистре в котором введет пользователь в бд, а сравнивалось независимо от регистра или я что то упустил в вашем запросе?
Я бы изменил мир, но бог не дает исходников (c)
И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки. ![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.12.2010
Сообщений: 109
|
![]()
Кажись понял про что ты говоришь
![]() ![]()
Я бы изменил мир, но бог не дает исходников (c)
И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки. ![]() |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
![]()
Я еще раз повторяю, с точки зрения хранения данных, правильным будет поставить на поле `name` UNIQUE KEY и сразу делать insert в базу, при этом отлавливая ошибку вставки, и в этом случае показывать сообщение пользователю !!!! тчк
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение регистра букв | frantic150 | Microsoft Office Excel | 11 | 30.08.2012 08:31 |
TopServer(PHP+MySQL+Apache+/etc), и обновление компонентов(в основном PHP) | Пепел Феникса | Софт | 2 | 05.11.2011 14:38 |
что не так с php кдом или с настройками MySQL+PHP | Jimmi | Помощь студентам | 2 | 27.12.2010 09:03 |
Изменение регистра букв | VladimirAleks | Общие вопросы Delphi | 4 | 27.10.2009 19:27 |
Автоматическое исправление регистра букв | apomin | Microsoft Office Word | 6 | 07.12.2008 00:29 |