MySQL IF pomoc

Programovacie jazyky, rady, poradňa...
DwDckQo
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 77
Registrovaný: 23 máj 2010, 9:47
Bydlisko: Stredné Slovensko

MySQL IF pomoc

Príspevok od používateľa DwDckQo »

Ahojte borci, potrebujem radu. Neviem ako spravím zistenie toho, či je ID v databáze
mám tabuľky
uzivatelia kde: (id 1, meno PETER) (id 2, meno IVO)
body kde: (id 1,body 25)

- Spravené to mám takto: UPDATE body SET body='$uloz_body', WHERE id ='$uloz_id' (funguje)

-ale čo keď chcem pripísať body na meno IVO ale v tabuľke body, neni ID 2 ako to mám spraviť aby mi to zistilo, že ID 2 v bodoch neni tak ju nasledovne nato vytvorí a naplní ?

-už som niečo skúšal
SELECT id,
IF(id='$uloz_id',tak UPDATE,tak INSERT INTO),
FROM body;
a takto mi to nejde, Ďakujem za rady :-)
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: MySQL IF pomoc

Príspevok od používateľa 94jakub »

UPDATE vracia počet zmenených riadkov. Môžeš spraviť if, že ak bolo zmenených 0 riadkov, pridáš tam nový.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: MySQL IF pomoc

Príspevok od používateľa S-player »

Spravíš to jednoducho a to za použitia INSERT ... ON DUPLICATE KEY UPDATE viz. http://dev.mysql.com/doc/refman/5.0/en/ ... icate.html
DwDckQo
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 77
Registrovaný: 23 máj 2010, 9:47
Bydlisko: Stredné Slovensko

Re: MySQL IF pomoc

Príspevok od používateľa DwDckQo »

Môžem nejak takto ?
$update = mysql_query("UPDATE body SET body='$uloz_body', WHERE id ='$uloz_id'");

if($update==0){query INSERT} ??
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: MySQL IF pomoc

Príspevok od používateľa 94jakub »

Samozrejme, že ide.
Ale S-playerove riešenie je o niečo krajšie.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL IF pomoc

Príspevok od používateľa audiotrack »

DwDckQo napísal:Môžem nejak takto ?
$update = mysql_query("UPDATE body SET body='$uloz_body', WHERE id ='$uloz_id'");

if($update==0){query INSERT} ??
nie nemôžeš. Odhladnúc od toho že v tom query máš čiarku čo ti hodí syntaktickú chybu, tak celá logika je nesprávna. mysql_query nevracia číslo ale resultset (pre dotazy typu show, describe...) alebo true/false pre ostatné (update, delete, insert..). Takže porovnávať to na nulu je hlúposť. V premennej $update budeš mať true pretože to query sa vykoná (false ak sa nevykoná - napríklad nemáme oprávnenia, padol server..). To že nič neupdatne je druhá vec. Ale query sa uskotoční, len s nulovým výsledkom. AK chceš kontrolovať či aj niečo ovplyvnilo, tak treba použiť mysql_affected_rows()
Napísať odpoveď