Autor | Zpráva | ||
---|---|---|---|
joe Profil |
Ahoj,
Potřeboval bych nějak nastavit dvě buňky v tabulce a to tak, že pro každý SET, bych měl podmínky jiné, jestli to lze, nemůžu na to přijít. Dám příklad, který nefunguje:-) z toho to bude pochopitelné. UPDATE tabulka SET sloupec_prvni = 1 WHERE id = 10, SET sloupec_druhy = 0 WHERE id = 20; Jde to nějak napsat jedním dotazem? Díky (omylem jsem smazal část názvu) |
||
K Profil * |
#2 · Zasláno: 25. 2. 2008, 23:33:51
pokud mas odlisny where, tak to posli jako dva dotazy..
query("UPDATE tabulka SET sloupec_prvni = 1 WHERE id = 10; UPDATE tabulka SET sloupec_druhy = 0 WHERE id = 20;"); |
||
joe Profil |
#3 · Zasláno: 25. 2. 2008, 23:56:49
K
Díky, nevím proč, ale nefunguje mi to tak, když mam dva dotazy napsané za sebou. Když vygenerované spojené dotazy hodím do phpmyadmin, tak to funguje. Ale když dám query("dotaz1; dotaz2"); Tak mi to píše chybu. Je nějaký rozdíl když napíšu query("dotaz1; dotaz2"); nebo query("dotaz1"); query("dotaz2"); Nebo je to naprosto stejné? :-) Já jenom jestli to v tom prvním případě není bráno jako jeden dotaz. |
||
K Profil * |
#4 · Zasláno: 26. 2. 2008, 02:37:38
Co ti to vypsalo za chybu?
|
||
nightfish Profil |
#5 · Zasláno: 26. 2. 2008, 08:18:39
mysql_query spojování více dotazů za sebe nepodporuje
phpmyadmin to imho rozseká a pošle zvlášť |
||
Kajman_ Profil * |
#6 · Zasláno: 26. 2. 2008, 08:42:19
Jde to nějak napsat jedním dotazem?
UPDATE tabulka SET sloupec_prvni = IF(id=10,1,sloupec_prvni), sloupec_druhy = IF(id=20,0,sloupec_druhy) WHERE id in (10,20); Ale osobně bych napsal ty dva jednoduché než jeden nepřehledný. A více dotazů je zpravidla zakázáno z bezpečnostních důvodů. |
||
K Profil * |
#7 · Zasláno: 26. 2. 2008, 08:54:42
wow tak jsem zas o neco chytrejsi.
|
||
joe Profil |
#8 · Zasláno: 26. 2. 2008, 23:34:37
Aha, díky všem. Taky jsem nevěděl, že jde jen jeden dotaz, jsem si mohl myslet, že phpmyadmin z toho udělá více dotazů. Tím se problém vyřešil, použiju dva a nebo předělám systém jakým to mám :-)
|
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0