Autor | Zpráva | ||
---|---|---|---|
Dejv Profil * |
#1 · Zasláno: 10. 3. 2013, 21:03:34
Dobrý večer,
řeším drobnou věc. Do databáze ukládám rezervace tak, že se vybrané datumy uloží za sebe oddělené středníkem. dates='".implode(";", $_POST['checkeds'])."', Teď potřebuji udělat do kalendáře podmínku, že pokud bude třeba danný datum (2013-03-20) v nějakém řádku mezi ostatními datumy, nevypíše se k datu checkbox pro zvolení. Nevím, jak do dotazu, prý je na to vhodné LIKE, ale fakt nevím, jak použít. Poradili by jste mi prosím? Děkuji. |
||
Micruss Profil |
#2 · Zasláno: 10. 3. 2013, 21:43:44
vyřešil bych to in_array();
<? if(in_array($datum, $databaze)) { // ... nic tady } else { echo'<input type="checkbox" name="reveserve" value="datum">'; } ?> |
||
Dejv Profil * |
#3 · Zasláno: 10. 3. 2013, 21:52:07 · Upravil/a: Dejv
Micruss:
Warning: in_array() expects parameter 2 to be array, resource given ..... Dejv: Muj dotaz: $sql = DB::query("SELECT id, dates, time, confirm FROM prefix-rezervace` WHERE confirm='0' ORDER BY id DESC"); |
||
ShiraNai7 Profil |
#4 · Zasláno: 10. 3. 2013, 22:05:31
Datumy by měly být ve zvláštní tabulkce. Pak bys mohl filtrování řešit rovnou přes LEFT JOIN na straně databáze.
|
||
donny Profil |
#5 · Zasláno: 11. 3. 2013, 00:15:58
Ukadať viac hodnôt v jednom stĺpci je imho nezmysel, takmer vždy na to člvoek neskôr doplatí, jedná sa o veľmi bežnú chybu, viac v FAQ k databázam Více hodnot ve sloupci
|
||
Dejv Profil * |
#6 · Zasláno: 11. 3. 2013, 07:40:28
donny:
OK, jak udělat hromadný insert, abych měl v druhé tabulce ID z první, kde je auto increment? Vytvořil jsem si druhou tabulku: id int(11) Auto Increment date1 date date2 date date3 date date4 date date5 date date6 date date7 date date8 date date9 date date10 date date11 date date12 date date13 date date14 date Jak na tohle udělat hezký dotaz? Díky. |
||
Tori Profil |
Dejv:
Bez auto_increment. V téhle tabulce budou jen vazby ID z první tabulky, a k tomu datum(y). Takže schéma nějak takhle: id INT datum DATE PRIMARY KEY (id, datum) |
||
Dejv Profil * |
#8 · Zasláno: 11. 3. 2013, 08:08:07
Tori:
Jasně, upraveno. Teď jak na to vkládání? Potřebuji asi udělat něco takového: DB::query("INSERT INTO `" . _mysql_prefix . "-rezervace` SET dates='', time='".time()."', ip='".$_SERVER['REMOTE_ADDR']."', confirm='0', object='".$_POST['object']."', firstname='".$_POST['firstname']."', surname='".$_POST['surname']."', street='".$_POST['street']."', number='".$_POST['number']."', city='".$_POST['city']."', psc='".$_POST['psc']."', phone='".$_POST['phone']."', email='".$_POST['email']."', people='".$_POST['people']."', message='".$_POST['message']."' INSERT INTO `" . _mysql_prefix . "-rezervace-casy` SET" foreach ($_POST['checkeds'] as $key => $val) { date.$key= $val }" ") |
||
Tori Profil |
#9 · Zasláno: 11. 3. 2013, 08:15:13
Dejv:
Když je to nový záznam, tak ho nejdřív vytvořte v hlavní tabulce, pak zjistěte ID vytvořeného záznamu (mysql_insert_id, nevím co používáte za DB vrstvu), a s tímto ID vložíte zadané datum(y): INSERT INTO rezervace-casy (id, datum) VALUES (1, '2013-01-01'), (1, '2013-01-02') atd.
|
||
Časová prodleva: 11 let
|
0