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