Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2012, 13:30   #1
Abuhamed
Форумчанин
 
Аватар для Abuhamed
 
Регистрация: 27.01.2010
Сообщений: 330
По умолчанию insert into mysql if not exist

Таблица users:

Код HTML:
|id|name|
Делаем запрос insert в таблицу

(!) но нужно сделать так, вдруг поле name c таким значением уже имеется не вставлять данные!

т.е.

Код HTML:
|id|name|
|1|Вован|
PHP код:
INSERT INTO users(id,nameVALUES(NULL,'Вован'// данные не заносятся т.к. Вован уже есть в таблице 
Abuhamed вне форума Ответить с цитированием
Старый 08.04.2012, 13:50   #2
GriFFoN
Пользователь
 
Аватар для GriFFoN
 
Регистрация: 03.06.2011
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Abuhamed Посмотреть сообщение
Таблица users:

Код HTML:
|id|name|
Делаем запрос insert в таблицу

(!) но нужно сделать так, вдруг поле name c таким значением уже имеется не вставлять данные!

т.е.

Код HTML:
|id|name|
|1|Вован|
PHP код:
INSERT INTO users(id,nameVALUES(NULL,'Вован'// данные не заносятся т.к. Вован уже есть в таблице 
Хм..а где вопрос то?
Если вы хотите сделать так, чтобы при существование в таблице с именем Вован данные не заносились, то
Код:
$sql = mysql_query("SELECT * FROM `users` WHERE `name`= 'Вован'");
if(mysql_num_rows($sql) ==1)
{
  echo 'Вован в таблице уже есть';
}
else
{
  mysql_query("INSERT INTO `users` (`users`) VALUES ('Вован') ");
}
GriFFoN вне форума Ответить с цитированием
Старый 08.04.2012, 13:53   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

1. Лучше делать сначала проверку - и если не найдено имя - только тогда вставлять
2. Сделать поле name уникальным - тогда БД будет ругаться при попытке добавить такое же значение
но лучше 1
ADSoft вне форума Ответить с цитированием
Старый 08.04.2012, 17:33   #4
Abuhamed
Форумчанин
 
Аватар для Abuhamed
 
Регистрация: 27.01.2010
Сообщений: 330
По умолчанию

Да проверить я знаю, мне что бы в запросе проверяло на существование и если есть не вносило. Буду делать с проверкой...
Abuhamed вне форума Ответить с цитированием
Старый 08.04.2012, 18:58   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Это самый оптимальный вариант - тем более вам же, наверное, нужно будет сообщить о совпадении пользователю - чтобы он ввел другое имя?

Последний раз редактировалось Andkorol; 08.04.2012 в 19:01.
Andkorol вне форума Ответить с цитированием
Старый 08.04.2012, 18:59   #6
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Ну так вам же написали уже !!! Поставьте полю UNIQUE KEY , если insert выдает ошибку, говорите юзеру, что такое значение есть .... Если и это не устраивает и хотите один запрос, напишите хранимую процедуру ...
В чем сложности-то?
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java + MySQL (Windows XP) не работает INSERT INTO Osanve Java Базы данных (JDBC, JPA, Hibernate) 10 28.06.2011 10:36
Запрос вида Insert..Select MySQL Svap SQL, базы данных 3 11.01.2011 19:11
База Данных MySql не выполняется INSERT INTO vasylshvv Java Базы данных (JDBC, JPA, Hibernate) 6 04.08.2009 10:16
Exist и not Exist Tanusha SQL, базы данных 5 13.03.2009 09:16
mysql проблемы с INSERT proglamer PHP 4 30.03.2008 14:36