terminplaner

  • Themenstarter Themenstarter farion
  • Beginndatum Beginndatum
F

farion

ich mache gerade mit flash einen terminplaner
man kann dort die termine für bestimmte tage anzeigen lassen.

mit php greife ich auf eine SQLdatenbank zu und lese die entsprechenden termine aus - kein problem

bei mehrtägigen terminen gibt es das aber - ich habe in der datenbank ein anfangs und ein enddatum und nun will ich die termine auslesen.

ich will also auch termine haben die vor dem suchdatum anfangen und nach dem suchdatum enden.

ich habe mir überlegt alle tage die zwischen dem anfangs und enddatum liegen in ein array zu schreiben und dann zu überprüfen ob eines mit dem suchdatum übereinstimmt. - ist das sinnvoll und wenn ja wie erstelle ich dieses array?

thx far
 
warum machst du das nicht einfach direkt mit einer abfrage?
Code:
SELECT * FROM termine WHERE anfangsdatum <= suchdatum AND enddatum >= suchdatum;

damit ist dann ausserdem noch sichergestellt, dass das anfangsdatum nicht nach dem enddatum liegen kann.
 
hmmm mal eine ganz andere idee:
wenn du in deine datenbank startdatum und ein enddatum hast würde es sich anbieten mit der sql function to_days zu arbeiten

wenn du also abfragen möchtes wo in der datenbank das heutige datum zwischen dem startdatum und enddatum liegt sieht die abfrage so aus:
select * from termine where to_days(startdatum) > to_days(now('')) and
to_days(enddatum) < to_days(now('')

ergebins ist alle tabellen bei den das heutige datum zwischen startdatum und enddatum ist ...
 
mhh das geht irgendwie nich ganz

$sql = "SELECT * FROM termine WHERE startdatum <= '$datum' AND enddatum >= '$datum' ORDER BY startzeit ASC";

wie bring ich $datum in ein format mit dem er vergleichen kann

also $datum ist momentan jjjj-mm-dd
 
ja, damit gibt's immer mal probleme, weil ein datum intern als zahl dargestellt wird. unter linux/unix (also auch mysql) wird dazu der unix-timestamp benutzt.
du kannst mit der funktion mktime einen timestamp zu einem bestimmten datum ermitteln. dabei musst du dann aber beachten, dass auch die zeit berücksichtigt wird.
 
das mag ja alles stimmen aber ich kann mein $datum nicht verwenden - das ist nämlich nicht heute sondern irgendein datum das der benutzer in einem kalender auswählt.

$datum ist nur ein banaler string und kein datum - wie krieg ich das konvertiert
 
dein datum ist ein string
aufmachung yyyy-mm-dd ? richtig ?

wie gesagt to_days($datum) wandelt um
kurzbeschreibung
to_days ermittelt von dem angegeben string "YYYY-MM_DD" die anzahl der tage seit 1970
(geburtstag von unix) - bedeutet du bekommst als ergebnis eine integerzahl mit der man klasse vergleichen kann

auf mich hört ja keiner seufts :-(

kleine berichtigung anzahl der tage seit jesus sprich jahr 0 ---
 
Zuletzt bearbeitet:
Zurück