Autor Zpráva
spacek145
Profil
Dobrý den, mám php seznam kde mam cas udalosti:

tabulka
----------------------------------------
jmeno konci zacina
-----------------------------------------
nekdo1 156525 262233
nekdo2 1144141 11515 (čas a datum ve stringu)

A mam k tomu formular na vkladani udalosti do teto tabulky --> A potřebuju tam sestavit IF podmínku, která by mi osetrila, aby kdyz pridam novou udalost, aby nebyla pridana v case (v tom rozmezi konce a zacatku), kdy uz tam je nekdo napsanej.

Jak to mam udelat?

Př. Martin zač. 14:50, konec 15:20
a ja chci pridat Ivetu, zač. 15:00, konec: 16:30 <- To nepujde
Pujde az minimalne: Iveta, zač. 16:31 - 17:00
Tori
Profil
spacek145:
mám php seznam
Kde - je to uložené v databázi, nebo textový soubor?
Jinak je potřeba porovnat novou událost se všemi už existujícími (uloženými). Pokud najdete nějakou, která bude vyhovovat podmínce
nova.zacatek < ulozena.konec && nova.konec > ulozena.zacatek, jejich časy se někde překrývají.
spacek145
Profil
v DB


Ale jak to mam porovnavat se vsemi? hromadnej slect a pak preš Row[zacatek] a Row[konec] ?
juriad
Profil
Musíš se zbavit časů a datumů ve strinzích; do databáze je ukládej jako DATETIME. Jinak jsi nahranej a máš smůlu.

$zacatek a $konec jsou Ivetiny hodnoty.
SELECT COUNT(*) FROM tabulka WHERE $zacatek < konci AND zacina < $konec 

Pokud tento dotaz vrátí nulu, tak je ten interval volný. Hodnota znamená, s kolika jinými intervaly se protíná.

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