Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uniwersalna konstrukcja do insert//update
Forum PHP.pl > Forum > Bazy danych > MySQL
ActivePlayer
Chodzi mi o to, jak połączyc te 2 zapytania w jedno...

mam formularz, jezeli wysylam do niego ID to pobiera z bazy dane, jesli nie, pokazuje sie pusty,

po wypełnienu chce dodac do bazy i zawsze pisaliem

  1. <?php
  2.  
  3. if($id!='')
  4. {
  5. //edycja, zapytanie z UPDATE
  6. }
  7. else
  8. {
  9. dodanie, zapytanie z INSERT
  10. }
  11.  
  12. ?>


chodzi mi o to jak połączyc to w jedno zapytanie... czyli jesli mamy podane id, to edytuje, jesli nie, to dodaje, jestem pewny ze mysql ma takie mozliwosci, i duzo więkrze...

pozdro ~~
Vertical
Możesz w zapytaniu użyć if/then:
  1. IF tabela1.kolumna1 != '' THEN UPDATE(...)
  2. [ELSE INSERT(...)]
ActivePlayer
eh, nie o takie zapytanie mi chodzilo... czekam dalej, moze ktos cos wymysli snitch.gif
nospor
hihi, trochę późno ale lepiej poźno niż wcale (dopiero teraz przypadkiem natrafilem na ten temat).

MOżesz użyć ON DUPLICATE KEY UPDATE:
Cytat
If you specify the ON DUPLICATE KEY UPDATE clause (new in MySQL 4.1.0), and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row is performed. For example, if column a is declared as UNIQUE and contains the value 1, the following two statements have identical effect:

mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)
    -> ON DUPLICATE KEY UPDATE c=c+1;

mysql> UPDATE table SET c=c+1 WHERE a=1;

The rows-affected value is 1 if the row is inserted as a new record and 2 if an existing record is updated.
http://dev.mysql.com/doc/mysql/en/insert.html

jest również REPLACE:
http://dev.mysql.com/doc/mysql/en/replace.html

pamiętaj: manual to Twój przyjaciel

pozatym nie to forum. PRzenoszę z php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.