PHP/MYSQL Dynamische Zusammenfassung von DB-Abfragen

bambusa

Moderator
Ich habe für einen Chor aus meiner Gegend den Online-Auftritt samt CMS System gecodet:
vocal-ensemble-hochwang.de

Woran ich noch arbeite, ist der Konzertrückblick
Hier werden die Termine mit Timestamp geprüft und die "abgelaufenen" Termine angezeigt.
Knackpunkt ist, dass ich, nicht wie in der kommenden Terminübersicht, doppelte Konzerte mit verschiedenen Orten separat anzeigen will, sondern unter einem Punkt zusammenfassen möchte. Dabei sollen aber die verschiedenen Orte und Pressekritiken angezeigt werden.
(In der Datenbank hat jeder Termin auch separate Einträge)

Wie zu sehen klappt das für zwei "doppelte" Termine (= gleicher Titel) bereits.
Das habe ich allerdings mit einem recht komplizierten Code gelöst, der nicht mehr für drei oder mehr gleiche Konzerte funktioniert. Grob beschrieben läuft die Abfrage der DB in einer Schleife pro Eintrag, wobei jeweils der nächste Eintrag nach gleichem Titel abgefragt wird und falls doppelt übersprungen und Ort und Pressekritik mit reingepackt wird.

Hab jetzt ein bisschen hin und her probiert aber ich komme auf keinen wirklich dynamisch Code für theoretisch unendlich viele "doppelte" Konzerte. Vlt hat jemand von euch einen Geistesblitz dafür 🙂
(möglichst nach wie vor mit PHP und MYSQL)
 
Zuletzt bearbeitet:
Wenn ich das richtig verstanden habe, könntest du doch einfach alle Termine aus der Datenbank auslesen, und dann mit PHP in einigen Schleifen Termine mit mehreren Orten herausfiltern und die in das vorhandene Array mit reinschreiben oder in ein neues laden.

Meine andere Idee, vlt. sogar einfacher?, du liest einfach nur jew. ein Konzert aus der Datenbank (Stichwort: distinct) und schaust dann danach, ob es noch weitere Einträge gibt.
 
An Vorschlag 1 habe ich schon gearbeitet. Ist mir aber eigentlich erstens zu unsauber und zweitens was die Performance angeht auch eher suboptimal.

An DISTINCT hatte ich noch gar nicht gedacht, ist einen Versuch wert, ist sicherlich einfacher.

Danke schonmal, werde das morgen mal testen.
 
Ohne Details zu können kann ich nur vermuten: ich schätze mal dein DB-Schema ist einfach schlecht. Ich hoffe mal du hast nicht einfach eine "Tabelle" mit allen Konzerten und allen Terminen - inklusive damit verbundener Redundanz und Konsistenz-Problemen. Denn dann bleibt dir nichts anderes übrig als die Einträge nachträglich (entweder mit SQL oder PHP) zu filtern.

Besser wäre zB eine Relation (Tabelle) für "Konzerte" und eine Relation für "Termine" mit entsprechender 1:n Beziehung. Dann könntest du nämlich bequem einfach die Tabelle "Konzerte" auslesen und bist fertig (ohne Dulipkate). Willst du die Termine auch immer mit anzeigen musst du halt die Tabelle "Termine" mit benutzen - zB mit einem SQL Join.
 

Online-Statistiken

Zurzeit aktive Mitglieder
2
Zurzeit aktive Gäste
26
Besucher gesamt
28

Beliebte Forum-Themen

Zurück
Oben Unten