PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sortierung von Terminen



inner.glow
20-01-2006, 13:46
Hallo!

Es geht um eine Veranstaltungsdatenbank (MYSQL). Jeder Veranstaltung können ein oder mehrere Termine zugeordnet werden (vereinfacht).

Bei der Darstellung der Veranstaltungen im Kalender wird die Termin-Datenbank abgefragt. In jedem Termin-Datensatz ist die ID der zugeordneten Veranstaltung gespeichert. So kann ich die Veranstaltungen ganz einfach nach Terminen sortiert ausgeben.

Nun möchte ich jedoch die Möglichkeit haben, für einen bestimmten Zeitraum die Termine nach Namen sortiert auszugeben. Es wäre natürlich möglich, alle Termine in einen Array einzulesen und dann nachträglich per PHP zu sortieren.

Weis jemand eine einfachere Lösung für dieses Problem?

sg, Fabian.

undefined
20-01-2006, 14:50
Schön und weiter :confused: Es gibt Tausende Möglichkeiten. Aber dazu müssten wir mal die Spalten Definitionen deiner Tabelle kennen um Überhaupt etwas sagen zu können ;)

inner.glow
20-01-2006, 15:16
Also, die vereinfachte Tabellenstruktur:

Tabelle: termine



termin INT (timestamp)
veranstaltung INT (ID der Veranstaltung)
ID INT auto_increment primary_key


Tabelle: Veranstaltungen


name VARCHAR 255
ID INT auto_increment primary_key


Das sind die wichtigsten Felder. Abgefragt wird die Termin-Datenbank. Zu jedem Termin wird dann die Veranstaltungs-Datenbank abgefragt und der Titel der Veranstaltung ausgelesen und in einer Liste ausgegeben.

Jetzt habe ich z.B. eine Termin-Tabelle für den Monat Januar. Diese soll nach den Veranstaltungs-Namen sortiert werden.

Ich suche eine einfache Lösung, die nicht zu arbeitsintensiv ist.

sg.

undefined
20-01-2006, 15:40
Das kannst du mit einer SQL Abfrage machen.
Die Schlagworte sind hierbei (EXTRACT/DATEFORMAT/LEFT JOIN/GROUP BY)
Wenn du nicht weiter kommst zeige deine SQL Abfrage dann kann man es Beipielhafter darstellen.

inner.glow
20-01-2006, 16:33
Hi!

Bisher habe ich nur mit den "normalen" SQL-Abfragen zu tun gehabt. Komplexe Abfragen habe ich bisher immer vermeiden können. Jetzt habe ich im Internet nach SQL-Dokumentationen gesucht und nichts sinnvolles gefunden. Die meisten Dokumentationen behandeln das, was ich schon kann :-) oder listen nur die Syntax der genannten Statements auf.

Mir fehlt ein gutes SQL-Buch und eine gute SQL-Referenz
Kannst du mir eine empfehlen?

Kannst du mir ausserdem mit einem Kommmando auf die Sprünge helfen... momentan tappe ich im Dunklen... :-)

sg.

Romanday
20-01-2006, 19:18
Hi!

Bisher habe ich nur mit den "normalen" SQL-Abfragen zu tun gehabt. Komplexe Abfragen habe ich bisher immer vermeiden können. Jetzt habe ich im Internet nach SQL-Dokumentationen gesucht und nichts sinnvolles gefunden. Die meisten Dokumentationen behandeln das, was ich schon kann :-) oder listen nur die Syntax der genannten Statements auf.

Mir fehlt ein gutes SQL-Buch und eine gute SQL-Referenz
Kannst du mir eine empfehlen?

Kannst du mir ausserdem mit einem Kommmando auf die Sprünge helfen... momentan tappe ich im Dunklen... :-)

sg.

gibt es alles unter (SQL Syntax):
www.mysql.com

zum Buch, kauf das was Du verstehst.

inner.glow
20-01-2006, 19:37
gibt es alles unter (SQL Syntax):
www.mysql.com

Das ist mir schon klar. Dort hab ich auch sofort geschaut. Eine reine Syntaxerklärung bringt mich mit meinem Problem aber momentan nicht weiter.


zum Buch, kauf das was Du verstehst.
Vielen Dank für den wertvollen Tipp. Ich werde ihn mir zu Herzen nehmen.

Ich dachte nur, jemand hätte vielleicht eine Empfehlung für mich... Ich suche ein SQL-Buch, dass nicht nur die 0815-Befehle beschreibt und sich an fortgeschrittene Programmierer wendet.

Wenn jemand ausserdem einen Artikel empfehlen kann oder einen SQL-Befehl zeigen kann, den ich gut für meine Zwecke anpassen kann, dann wäre ich ihm sehr dankbar.

sg.

PS: Ja, ich habe bereits bei Google nach "SQL" und "LEFT JOIN" gesucht!

Romanday
21-01-2006, 06:36
Ich dachte nur, jemand hätte vielleicht eine Empfehlung für mich... Ich suche ein SQL-Buch, dass nicht nur die 0815-Befehle beschreibt und sich an fortgeschrittene Programmierer wendet.

Wenn jemand ausserdem einen Artikel empfehlen kann oder einen SQL-Befehl zeigen kann, den ich gut für meine Zwecke anpassen kann, dann wäre ich ihm sehr dankbar.

Join Beispiele
http://dev.mysql.com/doc/refman/5.0/en/join.html

Autor Dubois (spez. MySQL, ist aber ein sehr altes Buch) finde ich ganz gut.
Weiß aber nicht, ob er noch unter einem anderem Namen seine Werke
veröffentlicht.

Geh in die Buchhandlung und schau dir Bücher mit mehr als 500 Seiten
an, und dann entscheide welches dir am besten zusagt.
So hast Du gleich einen Überblick was derzeit am Markt los ist.

Günni61
23-01-2006, 19:28
@inner.glow

Hi,

der Befehl....

select termin,name from termine,veranstaltungen where termine.veranstaltung=
veranstaltungen.id and termin like "2006-01-%" order by name;

....sollte dein gewünschtes Ergebnis zutage fördern.

Das % im Ausdruck like "2006-01-%" ist ein Platzhalter für 1-n Zeichen. Voraus=
gesetzt dein Datumsformat wird so abgelegt, werden nun alle Termine im Januar
angezeigt.

Meine Meinung zum Datum:

Falls das Datum ausschließlich manuell eingegeben wird, finde ich persönlich es
einfacher, das Datum als char anzulegen, dann kann man entsprechend unserer
Schreibweise z.B. direkt 1.1.2006 eingeben.

Das erspart lästige Konvertierungsarbeit, denn wenn man das Datum einfach so
ausgibt, dann liest man ja: 2006-01-12 – Veranstaltung, und das sieht ja nicht
so schön aus.

Zum Thema Lektüre:

Es müssen nicht immer 89,90 €-Schwarten im 1200 Seitenformat sein.

Ein, m.M. nach, gutes Taschenbuch, ca. 400 Seiten, Titel "MySQL mit PHP"
bekommst du im RoRoRo-Verlag.
ISBN: 3-499-61222-4
Preis: 9,90 €

Gruß
Günni

ClausVB
24-01-2006, 23:47
Ich finde den SQL-Teil vom DSP (http://ffm.junetz.de/members/reeg/DSP/node8.html) sehr gut.

Da steht vom CREATE bis zum EUQI-Join alles beschrieben.

Gruß
Claus

inner.glow
31-01-2006, 15:28
Hallo!

Ich hab mir jetzt "SQL - kurz&gut" von O'Reilly gekauft. Das gefällt mir recht gut, da es sich nicht unbedingt an Anfänger richtet und gute, verständliche Beispiele verwendet. Ausserdem muss man nicht erst 200 Seiten lesen, bis man das erfährt, was man wissen will.

@Günni61
Ich speicher meine Termine grundsätzlich als UNIX Timestamp ab. Damit hab ich gute Formatierungsmöglichkeiten.

Vielen Dank für die Hilfe.

sg, Fabian

der_rokko
04-02-2006, 16:51
Wo liegt dann das Problem?
SELECT spalte FROM tabelle WHERE timestamp > $von AND timestamp < $bis

$von ist dann der UNIX-Timestamp des Startdatums, $bis das Enddatum. Vielleicht hilft dir noch die PHP-Funktion mktime().