Forum » Izdelava spletišč » Urnik if + date() [PHP - začetnik]
Urnik if + date() [PHP - začetnik]
Klemen1602 ::
Zdravo!
Rad bi izdelal preprosto spletno stran, ki bi mi povedala ali je v določeni sobi predavanje ali je soba prosta. Že v naprej se zahvaljujem za pomoč!
Za začetek bi rad ugotovil zakaj naslednja koda ne deluje kot bi morala:
Moje razumevanje: Če je ura enaka ali večja od 12:00 ali manjša od 14:00 izpiši "V sobi je predavanje!". Trenutno je ura 23+ torej bi moral dobiti odgovor "Soba je na voljo!" ampak vedno dobim "V sobi je predavanje!". Tudi ko spremenim:
dobim enak rezultat, torej "V sobi je predavanje!".
Kaj delam narobe? Hvala za predloge in pomoč!
LP,
Klemen
Rad bi izdelal preprosto spletno stran, ki bi mi povedala ali je v določeni sobi predavanje ali je soba prosta. Že v naprej se zahvaljujem za pomoč!
Za začetek bi rad ugotovil zakaj naslednja koda ne deluje kot bi morala:
<?php date_default_timezone_set('Europe/Vienna'); $hour = date('H:i'); if ($hour >= '12:00' || $hour < '14:00') { echo "V sobi je predavanje!"; } else { echo "Soba je na voljo!"; } ?>
Moje razumevanje: Če je ura enaka ali večja od 12:00 ali manjša od 14:00 izpiši "V sobi je predavanje!". Trenutno je ura 23+ torej bi moral dobiti odgovor "Soba je na voljo!" ampak vedno dobim "V sobi je predavanje!". Tudi ko spremenim:
$hour = "15:00";
dobim enak rezultat, torej "V sobi je predavanje!".
Kaj delam narobe? Hvala za predloge in pomoč!
LP,
Klemen
Klemen1602 ::
@hellboy - hvala za link!
Če || zamenjam z && stvar deluje. (?)
Naslednje vprašanje - oblika MySQL tabele
Vsaki sobi bom dodelil ID in odpiralne/zapiralne čase glede na dan v tednu.
Moja ideja:
Ustvaril bom dve tabeli, ena bo lesson_start druga lesson_end.
Obstaja kakšna lepša/enostavnejša rešitev?
Če || zamenjam z && stvar deluje. (?)
Naslednje vprašanje - oblika MySQL tabele
Vsaki sobi bom dodelil ID in odpiralne/zapiralne čase glede na dan v tednu.
Moja ideja:
Ustvaril bom dve tabeli, ena bo lesson_start druga lesson_end.
lesson_start 101 - monday - 12:00 lesson_end 101 - monday - 15:00
Obstaja kakšna lepša/enostavnejša rešitev?
Zgodovina sprememb…
- spremenil: Klemen1602 ()
hellboy123 ::
Ne, tole so primerjalni operatorji.
Ti rabiš za ta primer, da boš primerjal dve cifri med sabo. In ja, to je tudi blo narobe. Rabiš AND (&&) namesto OR (||).
Najenostavneje kar se trenutno spomnim, bi blo nekako takole.
Za bazo pa lahko narediš vse samo v 1 tabeli:
lessons
- room_id
- weekday
- time_from
- time_to
Ti rabiš za ta primer, da boš primerjal dve cifri med sabo. In ja, to je tudi blo narobe. Rabiš AND (&&) namesto OR (||).
Najenostavneje kar se trenutno spomnim, bi blo nekako takole.
Za bazo pa lahko narediš vse samo v 1 tabeli:
lessons
- room_id
- weekday
- time_from
- time_to
Veron ::
osebno če primerjam čase, uporabim timestamp, torej prvo čase pretvori z strtotime nato pa jih primerjaj
Klemen1602 ::
Zdravo!
Nastalo je tole:
Situacija:
Vsaka soba ima x-predavanj (in ta x ni skoraj nikoli 1) in jasno php mi preko whilea izvrže najprej 10 predavanj za vsako sobo in jih potem obarva. Kakšen predlog kako naj napišem stvar tako, da se bo izpisala vsaka soba le 1x in na podlagi tega ali je v njej predavanje ali ne tudi obarvala?
Hvala za pomoč!
LP,
Klemen
Nastalo je tole:
<?php date_default_timezone_set('Europe/Vienna'); // Make a MySQL Connection mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("konse") or die(mysql_error()); // Construct our join query $query = "SELECT * FROM lessons, rooms WHERE lessons.room_id = rooms.room_id"; $result = mysql_query($query) or die(mysql_error()); $hour = date('Hi'); $day = date('l'); $day = strtolower($day); switch ($day) { case 'monday': $day_num = 1; break; case 'tuesday': $day_num = 2; break; case 'wednesday': $day_num = 3; break; case 'thursday': $day_num = 4; break; case 'friday': $day_num = 5; break; case 'saturday': $day_num = 6; break; } while ($row = mysql_fetch_array($result)) { $opened = $row['time_from']; $closed = $row['time_to']; if ($day_num == $row['weekday'] && $hour >= $opened && $hour <= $closed) { echo "<p style='color: red;'>".$row['room_id']." - ".$row['name']."</p>"; } else { echo "<p style='color: green;'>".$row['room_id']." - ".$row['name']."</p>"; } } ?>
Situacija:
Vsaka soba ima x-predavanj (in ta x ni skoraj nikoli 1) in jasno php mi preko whilea izvrže najprej 10 predavanj za vsako sobo in jih potem obarva. Kakšen predlog kako naj napišem stvar tako, da se bo izpisala vsaka soba le 1x in na podlagi tega ali je v njej predavanje ali ne tudi obarvala?
Hvala za pomoč!
LP,
Klemen
t3hn0 ::
Glede na zgornjo kodo, lahko vrstice 14-41 zamenjas s tem:
(Več o tem)
Lahko poskusis z grupiranjem v sql queriju, lahko probas dodat stvari v array [strukture $out = array( id_sobe => array( termin1, termin2,..), id_sobe2...], lahko ...
Odvisno koliko bi se rad igral in kaj naucil. Moznosti je veliko
$day_num = date('N');
(Več o tem)
Lahko poskusis z grupiranjem v sql queriju, lahko probas dodat stvari v array [strukture $out = array( id_sobe => array( termin1, termin2,..), id_sobe2...], lahko ...
Odvisno koliko bi se rad igral in kaj naucil. Moznosti je veliko
^.^
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kompresija velikih fajlovOddelek: Programska oprema | 4470 (2461) | MrStein |
» | Izšel PHP 5.5Oddelek: Novice / Ostala programska oprema | 5198 (3888) | technolog |
» | router priključen na routerOddelek: Omrežja in internet | 3735 (2305) | janco |
» | [c#] Vstavljanje vrednosti v tabeloOddelek: Programiranje | 1608 (1430) | Cvenemir |
» | Wordpress - izpis postov glede na datumOddelek: Izdelava spletišč | 795 (743) | JayKay |