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

Форум MySQL

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

 

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

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

тема: Замена существующих данных в таблице
 
 автор: NightSoldier   (23.09.2009 в 16:19)   письмо автору
 
 

К примеру есть таблица 'onl', нужно добавить новую запись, если значение поля с INDEX'ом PRIMARY не повторяется или же вообще нет, а если сущесвует, то заменить все значения полей на новые.

Помогите составить запрос плииз.

  Ответить  
 
 автор: Trianon   (23.09.2009 в 16:24)   письмо автору
 
   для: NightSoldier   (23.09.2009 в 16:19)
 

REPLACE

  Ответить  
 
 автор: cheops   (23.09.2009 в 16:24)   письмо автору
 
   для: NightSoldier   (23.09.2009 в 16:19)
 

Проще всего тут воспользоваться оператором REPLACE, который ведет себя именно так, как вы описываете.

  Ответить  
 
 автор: NightSoldier   (23.09.2009 в 16:28)   письмо автору
 
   для: cheops   (23.09.2009 в 16:24)
 

REPLACE INTO user_entry SET user_ip='$user_ip', qu_entry=`qu_entry`+1, date_entry='".time().'\'

вот такой запрос и нифига не работает, в том смысле, что не заменяет, а остаются прежние-(((((((

как же быть???

или в моём запрсое есть ошибочка - исправьте плиз?

  Ответить  
 
 автор: cheops   (23.09.2009 в 16:35)   письмо автору
 
   для: NightSoldier   (23.09.2009 в 16:28)
 

А структура таблицы какая?

  Ответить  
 
 автор: NightSoldier   (23.09.2009 в 16:45)   письмо автору
 
   для: cheops   (23.09.2009 в 16:35)
 

user_ip - INT(11) PRIMARY index
qu_entry - TINYINT(2)
date_entry - BIGINT(20)

  Ответить  
 
 автор: Trianon   (23.09.2009 в 16:37)   письмо автору
 
   для: NightSoldier   (23.09.2009 в 16:28)
 

Запрос REPLACE (равно как и INSERT) позволяет записать в строку новые значения, при этом полностью затерев старое содержимое строки, а не изменить значения в имеющихся полях.
Выражение qu_entry=`qu_entry`+1 здесь неприменимо.
Каноническая форма запросов INSERT и REPLACE не содержит раздела SET вообще.


Для изменения имеющихся значений можно применить оператор INSERT ... ON DUPLICATE KEY UPDATE

  Ответить  
 
 автор: NightSoldier   (23.09.2009 в 16:46)   письмо автору
 
   для: Trianon   (23.09.2009 в 16:37)
 

INSERT ... ON DUPLICATE KEY UPDATE

я незнаю как его использовать можно пример пожалуйста?

  Ответить  
 
 автор: Trianon   (23.09.2009 в 16:51)   письмо автору
 
   для: NightSoldier   (23.09.2009 в 16:46)
 

Конечно, можно. Пример находится на странице документации MYSQL к этому запросу.
Не видеть её (страницу) Вы по идее не могли.
Более живой пример можно найти поиском в этом форуме.

  Ответить  
 
 автор: NightSoldier   (23.09.2009 в 17:00)   письмо автору
 
   для: Trianon   (23.09.2009 в 16:51)
 

уже всё сделал! всё работает! УРА

спасибо

  Ответить  
Rambler's Top100
вверх

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