Autor | Zpráva | ||
---|---|---|---|
spartan13 Profil |
#1 · Zasláno: 15. 3. 2010, 17:48:14
Dobrý den, mám 2 zásadní problémy s rezervačním systémem. V databázi je pouze id a datum
-používám checkboxy(1 checkbox=1 den, takže jich tam je např. 30) 1)v případě, že je checkbox zaškrtnutý tak potřebuji, aby se prověřilo jestli tam je stejné id a datum(zároveň-v jednom řádku) v případě že ano tak se nic nestane v opačném případě se zapíše. 2)v případě, že checkbox není zaškrtnutý tak potřebuji, aby se prověřilo jestli v DB už už není stejný datum a stejné id(zároveň -v jednom řádku) v případě, že je tak ho potřebuji vymazat a v případě, že není tak se nestane nic. Vím, jak oba případy vyřešit ale bylo by to značně neefektivní potřebuji pracovat s cca 30ti dny nebo i více. MŮJ POSTUP: použil bych klasicky select * from tabulka where id=$id and datum=$datum to celé bych musel dělat v cyklu a pak v případě, že by tam bylo tak nic v případě že ne tak bych to opět vkládal. To se mi zdá extrémě krkolomné, podobně bych postupoval i u dalšího případu. |
||
spartan13 Profil |
#2 · Zasláno: 16. 3. 2010, 09:16:55
Měli byste aspoň nějakou připomínku jak zhruba na to?
|
||
Kajman_ Profil * |
#3 · Zasláno: 16. 3. 2010, 10:03:21
Nestačí na to obyčejný replace?
|
||
spartan13 Profil |
#4 · Zasláno: 16. 3. 2010, 11:50:00
Kajman:
stačil by ale musel by se shodovat jak id tak i datum protože id tam bude vícekrát stejné. id označuje určitou osobu. |
||
Kajman_ Profil * |
#5 · Zasláno: 16. 3. 2010, 13:40:07
Když bude primární klíč kombinace id a datum, tak stačí sestavit dva dotazy...
replace into tabulka values (1,'2010-05-18'), (1,'2010-05-19'), (2,'2010-05-20'), (3,'2010-05-20'); delete from tabulka where (id, datum) in ((1,'2010-05-20'), (4,'2010-05-19')); |
||
Časová prodleva: 14 let
|
0