[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как избежать повторного занесенияв б.д.
SoMeOnE
Здравствуйте.
Задача занести данные юзера в базу (в этом случае самые важные данные будут равняться нулю), но перед этим проверить есть ли он там (если он там существует у него значит есть уже какие то данные)
У каждого пользователя уникальное id.

Можно сделать так ?

$res = mysql_fetch_object(... WHERE id=xxx);

If(count($res)==1) {
ничего не делать

}

{

занести в базу
}


Так наверное не совсем правильно. Как можно это сделать более рационально ?



Спустя 26 минут (15.03.2011 - 16:55) Snus написал(а):
SoMeOnE
Использовать ключи UNIQUE :)
http://www.w3schools.com/sql/sql_unique.asp
И
INSERT INTO `db_table` (`test1`,`test2`) 
VALUES ('test1','test2')
ON DUPLICATE KEY
UPDATE
`test2` = 'test5'


Или
INSERT IGNORE INTO ....

Спустя 5 минут, 56 секунд (15.03.2011 - 17:01) Trianon написал(а):
Если id - уникальный ключ, повторно данные Вы всяко добавить не сможете.

Спустя 2 часа, 36 минут, 43 секунды (15.03.2011 - 19:38) SoMeOnE написал(а):
Цитата (Trianon @ 15.03.2011 - 14:01)
Если id - уникальный ключ, повторно данные Вы всяко добавить не сможете.

Почему.
Пришел юзер (у него свой uid). Но он уже второй раз пришел (т.е. при первом его посещении он уже был занесен). Что помешает ему во второй раз добавиться в базу и ... десятый ?

Спустя 2 часа, 43 минуты, 23 секунды (15.03.2011 - 22:21) sergeiss написал(а):
SoMeOnE - а ты хотя бы попробуй сделать то, что тебе предложили smile.gif А потом задавай вопросы, если они останутся. А для начала почитай хэлпы на тему того, о чем написано было.

Или ты считаешь, что все сейчас должны сорваться и начать тебе копипастить хэлпы в эту тему???

Спустя 1 час, 12 минут, 47 секунд (15.03.2011 - 23:34) SoMeOnE написал(а):
sergeiss
А кто сказал, что я не попробую. Просто я не был за рабочим компом и прокоментировал только второй ответ.
И впринципе почти уверен), что ответ Snus, мне поможет. Так как я не знал в каком направлении искать. Он подсказал где искать. Надеюсь разберусь
Я всего лишь хотел уточнить, что имел ввиду Trianon.

Спустя 33 минуты, 35 секунд (16.03.2011 - 00:08) Trianon написал(а):
Цитата
Я всего лишь хотел уточнить, что имел ввиду Trianon.


Так собственно:
Цитата
Задача занести данные юзера в базу...
но перед этим проверить есть ли он там...
У каждого пользователя уникальное id.


я сказал, что добавить в таблицу строку с таким же значением уникального поля, как уже есть в таблице, сервер просто не позволит.
Запрос будет отвергнут с ошибкой.

Спустя 2 дня, 52 минуты, 42 секунды (18.03.2011 - 01:00) SoMeOnE написал(а):
Спасибо за помощь. Разобрался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.