Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запретить запись в базу, если в базе уже есть такая запись - PHP БД / 15 сообщений из 15, страница 1 из 1
29.04.2016, 08:03
    #39227197
barmak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Помогите пожалуйста,есть запрос :
Код: plsql
1.
2.
3.
4.
$sql = "INSERT INTO Journal1 (Num, begin_dts, dept, note, disp) 
VALUES ('$number', '$datetime', '$dept', '$text', '$disp')";
$result = mysql_query($sql) 
    or die('A error occured: ' . mysql_error());


который через форму получает данные и записывает их в бд. Как реализовать чтобы, по полю "Num"-(туда записывается номер нарушения, цифрами) был запрет записи одинаковых данных.
...
Рейтинг: 0 / 0
29.04.2016, 08:33
    #39227204
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Сделать уникальный индекс по указанному полю.
...
Рейтинг: 0 / 0
29.04.2016, 08:39
    #39227205
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
vkle, точно.

И получить на клиенте сообщение "SQLSTATE ERROR ..." после которого сайт уходит на 105-й километр в поисковой оптимизации, а автора гонят с работы "с волчьим билетом". :)
...
Рейтинг: 0 / 0
29.04.2016, 08:43
    #39227206
barmak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
vkle, не вариант
...
Рейтинг: 0 / 0
29.04.2016, 09:07
    #39227216
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Arhat109И получить на клиенте сообщение "SQLSTATE ERROR ..."Чтобы такого не случилось, есть ON DUPLICATE KEY UPDATE. В крайнем случае INSERT IGNORE.
...
Рейтинг: 0 / 0
29.04.2016, 09:08
    #39227218
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
barmakКак реализовать чтобы, по полю "Num"-(туда записывается номер нарушения, цифрами) был запрет записи одинаковых данных.Если имеется в виду запрос на клиенте - то сначала проверка наличия SELECTом, и только при отсутствии - вставка. Если на сервере - см. выше.
...
Рейтинг: 0 / 0
29.04.2016, 09:49
    #39227237
barmak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Да на клиенте, можешь написать как проверку сделать?
...
Рейтинг: 0 / 0
29.04.2016, 09:55
    #39227238
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
barmak,

уже написали, SELECT'ом
...
Рейтинг: 0 / 0
29.04.2016, 09:58
    #39227240
barmak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
tanglir, ?
...
Рейтинг: 0 / 0
29.04.2016, 10:03
    #39227243
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
barmakна клиенте, можешь написать как проверку сделать?Могу, но...

Ответь вот на какой вопрос. Ты пишешь, что
barmakпо полю "Num"-(туда записывается номер нарушения, цифрами) был запрет записи одинаковых данных.
Так вот. Если такое значение Num в таблице имеется - что нужно сделать? Вряд ли просто молча проигнорировать введённые оператором данные - это нехорошо, если он думает, что данные записаны, а это не так... Заодно подумай, а что если по NUM-таки дубликат, а вот по другим полям нет? скажем, в имеющейся записи в поле note лежит краткое описание, а оператор ввёл полное...

С моей точки зрения интерфейс должен работать немного по-другому. После ввода значения Num он должен по кнопке или асинхронно запрашивать наличие и содержимое записи. И если таковая имеется - он должен показывать оператору, что содержится в полях этой записи. Как вариант - вместо ввода новой записи должен переводить его в режим корректировки существующей записи. Впрочем, это зависит от закладываемых в клиент процессов...
...
Рейтинг: 0 / 0
29.04.2016, 10:12
    #39227247
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Arhat109И получить на клиенте сообщение "SQLSTATE ERROR ..."Ну так ошибки обрабатывать надо немного более интеллектуальным образом, чем "or die()".
Автор попробует на тестовом сайте, увидит возникающую ошибку и напишет для нее отдельный обработчик :)
...
Рейтинг: 0 / 0
29.04.2016, 10:14
    #39227250
barmak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Akina, по другим полям совпадения не страшны, только по Num совпадений не должно быть, ты прав, если такая запись уже есть в Num нужен вывод ошибки "Запись с таким номером уже существует", ты прав, просто я не могу этого реализовать.
...
Рейтинг: 0 / 0
29.04.2016, 10:18
    #39227256
barmak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Я только учусь.
...
Рейтинг: 0 / 0
29.04.2016, 10:44
    #39227282
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
barmakесли такая запись уже есть в Num нужен вывод ошибки "Запись с таким номером уже существует"Как правильно сказано выше:
miksoftошибки обрабатывать надо немного более интеллектуальным образом, чем "or die()".
...
Рейтинг: 0 / 0
26.07.2016, 22:21
    #39280687
армара
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запретить запись в базу, если в базе уже есть такая запись - PHP БД
barmak,

возьмите один столбец, и установите его уникальным.
mysql> ALTER TABLE cats ADD UNIQUE(name(32));

после этого, при повторном вводе одинаковых знаений полуите
Duplicate entry 'Leo' for key 'name' /*.mysql_error())*/
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запретить запись в базу, если в базе уже есть такая запись - PHP БД / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]