Mailinglisten-Archive |
Aloha, > ---------- > Von: Markus Heckmann[SMTP:haegge_(at)_webriot.de] > > (die mysql liste ist irgendwie tot.. deshalb mal hier an php) > Die ist nicht tot, es hat nur niemand was geantwortet ;-) > habe folgendes Problem: > -es soll aus mehreren Tabellen daten abgerufen werden welche nach dem > datum > sortiert sind und auch nur in einem ganz bestimmten zeitbereich liegen > dürfen. > > Also meine Lösung war die: > > select * from club, kino where (to_days(club.datum) <= (to_days(now())+4)) > AND (to_days(kino.datum) <= (to_days(now())+4)); > Das Problem ist hier, daß du 2 Tabellen abfrägst, die Ergebnisenge einschänkst ... bis hier hin ist das auch ok ... aber nicht die beiden Tabellen miteinander Verknüpftst. Ohne eine Verknüpfung lässt sich halt eine Abfrage aus 2 Tabellen nicht machen. > das ist denn ja nun falsch - aber wie gehts besser...? > Mit einem wohlüberlegten Datenbankdesign. Z.b. mit folgenden Spalten in EINER Tabelle: id autincrement, typ enum oder char mit z.B. K für Kino oder C für Club .... datum als passender Datumstyp uhrzeit als passender Zeittyp beschreibung varchar/text/... .... weitere Felder die du brauchst... damit kannst du alle kinotermine abfragen : ... where typ='K' and (to_days(kino.datum) <= (to_days(now())+4)) order by datum; oder alle Clubtermine : ... where typ='C' and (to_days(kino.datum) <= (to_days(now())+4)) order by datum; oder alle Termine : ... where (to_days(kino.datum) <= (to_days(now())+4)) order by datum; Usw. Lies dir mal ein SQL-Buch durch bzw. Onlinetexte dazu, wie man Datenbanken und Tabellen designt. Und das schönste Design nützt nix, wenn oft benötigte Abfragen zu lange dauern --> Design modifizieren .... das kann ganz schön lange dauern ;-) Viele Grüße, Mathias
php::bar PHP Wiki - Listenarchive