Можно ли изменить данные со значением поля UNIQUE

Статус
Закрыто для дальнейших ответов.

KDES70

Well-Known Member
Регистрация
16.02.2012
Сообщения
73
Здравствуйте!!!
подскажите пожалуйста к примеру у меня есть таблица User в ней есть поле Login со значением UNIQUE чтобы логины при регистрации были уникальными
но возник вопрос как можно при желании изменить логин? можно ли это сделать одним запросом sql? к примеру при регистрации я использую INSERT IGNORE при запросе он проверяет есть ли дубликат и не приходится делать с начало выборку и искать совпадения
 

Indev29

Just Code...
Регистрация
15.08.2012
Сообщения
370
как можно при желании изменить логин?
Код:
UPDATE users SET login = 'user' WHERE id='1';
Не понимаю в чем проблема. Ну перед этим можно еще сделать на уникальность ника проверку.

P.S. ЗАПЯТЫЕ ВЕРНИТЕСЬ!
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Код:
update `user` set `login` = '$new_login' where `id` = (select `id` from `user` where `login` = '$login');
update `user` set `login` = '$new_login' where `id` = (select `id` from `user` where `id` = '$id');
update `user` set `login` = '$new_login' where `login` = (select `login` from `user` where `login` = '$login');
 

KDES70

Well-Known Member
Регистрация
16.02.2012
Сообщения
73
не пойму логику можно пояснить?)
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
брррр, а никого не смущает, что если поле логин со значением UserName уже занято, то мускуль вернет ошибку о дублировании контента по заданному полю? try & catch вам в помощь...
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
хм, даже try & cath не нужно.
Код:
$query = mysql_query("INSERT INTO `apps_test` (login) VALUES ('user_name') ") or die('Логин занят') ;
вместо die('....'); вы можете написать собственную функцию, с логикой "что мне делать, если логин занят"

UP: а вообще, вот вам совет: прикрутите к форме редактирования данных проверку на ajax и тогда пользователь еще перед отправкой формы увидит, что логин занят.

Для этого нужно почитать про jQuery, ajax, событие .blur() и коллбэки функций.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ