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
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
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
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...

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:

0