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

Форум MySQL

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

 

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

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

тема: Проверка поля на повторения кода и его блокировка
 
 автор: jurij_83   (14.03.2006 в 09:58)   письмо автору
 
 

Скажите пожалуйста:

хочу сделатьбазу данных. Скажем, в ней несколько полей (допустим 4).
id
kod - что-то в роде личного кода (который не повторяется).
name
surname

Как сделать так, чтобы пользователь один раз зашёл и заполнил такие данные:
123AS5 (kod)
Алексей
Локимов

Заходит второй раз и заполняет
123AS5 (kod)
Владимир
Антинов

И здесь вылезает сообщение. Извините, такой код уже есть в системе.
Другими словами, чтобы происходила проверка поля kod на повторение (если есть такой код, то запись не происходит).

Как это сделать?
Может такая тема где обсуждалась... Или мет кто может написать примерный код.
Спасибо.

   
 
 автор: cheops   (14.03.2006 в 13:29)   письмо автору
 
   для: jurij_83   (14.03.2006 в 09:58)
 

Для этого следует перед выполнением оператора INSERT выполнить запрос, существует такой пользователь или нет. Кроме этого можно на полях содержащих эту информацию организовать уникальный индекс, тогда вставить не уникальное значение не получится - MySQL сама будет следить за этим.

   
 
 автор: jurij_83   (14.03.2006 в 23:04)   письмо автору
 
   для: cheops   (14.03.2006 в 13:29)
 

1. Да, я тоже подумал, что проще, наверное, сделать уникальный индекс.

А как он делается? Просто в phpmyadmin выбрать?

2. И ещё вопрос: если это будет уникальный индекс, то, допустим добавил я одну запись; пытаюсь добавить вторую (с тем же кодом). Что будет происходить? Будет ли отображаться какое-то сообщение, что не добавляется (такой код есть)?

Спасибо за пояснения.

   
 
 автор: cheops   (14.03.2006 в 23:36)   письмо автору
 
   для: jurij_83   (14.03.2006 в 23:04)
 

1) Да можно выбрать соответствующую управляющую ссылку в phpMyAdmin или воспользоваться оператором CREATE INDEX (подробнее о нём можно почить в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=419).

2) Будет возвращаться ошибка номер 1062 - Duplicate entry, но пугать вас это не должно, вы всегда можете узнать номер ошибки при помощи функции mysql_errno() и среагировать соответствующим образом. Номер на всякий случай проверьте экспериментально.

   
Rambler's Top100
вверх

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