Autor | Zpráva | ||
---|---|---|---|
jirivo Profil * |
Lze nějak u cyklu for nastavit jiný prováděný příkaz u prvního a posledního záznamu. Potřebuji do rezervačního kalendáře napsat všechna data v rozmezí dvou datumů (od - do), to mám vyřešené, ale a u těch okrajových dat potřebuji aby bylo možné ještě zvolit mezi statusy odpoledne a dopoledne, tyto data se pak zapisujou do databáze a právě ty začáteční a konečné budou mít jiné id statusu (buď dopoledne nebo odpoledne, ostatní data v rozmezí mají automaticky status celý den)
Tady je kód: $begin = strtotime($_POST[dateod]); $end = strtotime($_POST[datedo]); for ($actual = $begin; $actual <= $end; $actual += 86400) { $datum = date('Y-m-d', $actual); $dotaz = "INSERT INTO rezervace (id_item, the_date, id_state, id_booking) VALUES ('$id]', '$datum', '1', '0')"; $vysledek = @mysql_query ($dotaz); } u id_state je 1 celý den, a u těch okrajových dat to bude buď 2 nebo 3 (dopoledne, odpoledne) Doufám, že jsem to napsal srozumitelně, předemděkuji za pomoc Moderátor Joker: Titulek „Cyklus for“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
Joker Profil |
#2 · Zasláno: 2. 4. 2010, 22:36:10
jirivo:
„Lze nějak u cyklu for nastavit jiný prováděný příkaz u prvního a posledního záznamu.“ Předpokládám to není sdělení pro nás, ale na konci má být otazník ;-), takže: Jde kód uvnitř cyklu rozvětvit příkazem if, tj. například: for($i=1; $i <= 10; $i++){ if($i == 9) //... Poslední položka! else // kód pro ostatní položky } Případně jde začít/skončit o jeden cyklus později/dřív a zpracování prvního/posledního prvku si udělat mimo cyklus. Mimochodem, víte, že jedním příkazem INSERT jde vložit i více řádků? INSERT INTO tabulka (seznam sloupců) VALUES (...hodnoty první položky...), (...hodnoty druhé položky...), (...hodnoty třetí položky...), ... |
||
petr 6 Profil |
#3 · Zasláno: 3. 4. 2010, 15:16:37
jirivo:
Na řádku 6 máš přebytečnou pravou hranatou závorku ] Joker: V tomto případě poslední položka je pro if($i == 10) „Mimochodem, víte, že jedním příkazem INSERT jde vložit i více řádků?“ I na ten jeden dotaz bude potřebovat cyklus, ne? |
||
Nox Profil |
#4 · Zasláno: 3. 4. 2010, 15:49:08
petr 6:
ano, ale vytvoření řetězce je nesrovnatelně rychlejší než celá komunikace s databází spojená s provedením mysql_query navíc se po každém insertu musí přeindexovat! prostě to je zahlcovák DB, takhle opravdu ne... |
||
Časová prodleva: 14 let
|
0