Autor Zpráva
spartan13
Profil
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
Měli byste aspoň nějakou připomínku jak zhruba na to?
Kajman_
Profil *
Nestačí na to obyčejný replace?
spartan13
Profil
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 *
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'));

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: