Mysql Daten in PHP sauber ausgeben

skee

Mitglied
Hi,
ich hoffe, ich bin hier richtig, weil ich nicht genau weiß ob es jetzt ein PHP Thema ist, oder ich evtl. meine Datenhaltung anpassen sollte:

Ich habe eine Tabelle "Fragen", eine Tabelle "Antworten" und eine Tabelle "FragenAntworten" wo einer Frage n Antworten zugewiesen werden.
Wenn ich die jetzt auslese, bekomme ich sowas:

Frage1|Antwort1
Frage1|Antwort2
Frage1|Antwort3
Frage2|Antwort4
Frage2|Antwort5

Inhaltlich absolut korrekt.
Jetzt möchte ich das natürlich darstellen. Am liebsten einen Header mit "Frage1/2" und darunter aufgelistet dann die dazugehörigen Antworten.
Und hier stellt sich jetzt die Frage, wie man in PHP diese Logik am besten abbildet.
Bisher mache ich es so, dass ich mir in einer temporären Variable speichere, welche Frage grad dran ist und wenn sich diese ändert, wird der Header geschrieben und sonst nur Antworten. Funktioniert auch gut, finde es aber irgendwie gefühlt als zu "unsauber".
Komplizierter wird es, wenn man vielleicht noch Divs außenrum packen will, was dann dazu führt, dass man ja das Tag beim Schreiben des Headers auf macht und beim nächsten Header auch das schließende Tag mit ausgeben muss. Außer beim ersten, denn da wäre ein schließendes Tag natürlich sinnlos. (noch eine Variable in der man mitzählt) Und nach der DB Abfrage muss man auch manuell nochmal ein schließendes Tag setzen für den letzten Header.

Bisher habe ich mir angewöhnt, die DB Abfrage erstmal in multidimensionale Arrays zu packen, womit man dann per verschachtelten foreach-Schleifen bei der Ausgabe schön durchlaufen kann und diese probleme nicht hat. Fühlt sich für mich aber auch irgendwie wie ein schmutziger Trick an.

Daher wollte ich mal fragen, wie die profis hier denn sowas handhaben..

Bin über Anregungen sehr dankbar.

gruß
Skee
 
Hallo Skee,

kanne es sein, dass du keine saubere Trennung zwischen Businesslogik und Ausgabe hast? Kennst du das MVC-Prinzip?
 
Hi ComFreek,
Ja, da hast du nicht ganz unrecht ;-)
ich glaube, ich muss da mal ein bisschen sauberer programmieren. Habe mir mal ein bisschen was zu MVC angesehen und muss sagen, das klingt ganz vernünftig :D
Ich werde dann mal umschreiben.

Danke dir
Skee
 
Gedenkst du, ein Framework zurate zu ziehen? Ansonsten wirst du bei ziemlich vielen Klassen (Controller, Model, View, Database etc.) das Rad neu erfinden. Die Nachteile liegen auf der Hand: mehr Bugs, mehr Sicherheitslöcher, mehr Arbeit - allerdings auch: weniger Lerneffekt.

Wenn du deine Applikation allerdings professionell erstellen willst, kommst du um ein Framework nicht wirklich herum.
 
Also grundsätzlich bin ich ein Freund davon, Sachen selbst zu machen. Einfach, um genau zu verstehen, was da passiert. Aber für das aktuelle Projekt wäre vielleicht ein fertiges Framework nicht so verkehrt.
Kannst du eines für Einsteiger empfehlen? Bzw., wie finde ich das optimale für mich?
Das aktuelle Projekte ist jetzt tatsächlich recht überschaubar. Vielleicht maximal 10 Seiten und ein bisschen jQuery um bestimmte Elemente auf der Seite mit Infos aus der DB zu aktualisieren, ohne jeweils die ganze Seite neu zu laden.
 
Also grundsätzlich bin ich ein Freund davon, Sachen selbst zu machen.
Das kann ich nachvollziehen, allerdings war genau dies bei esoTalk, einer kleinen Forumssoftware, ein Riesenproblem: http://esotalk.org/blog/future-of-esotalk.html

Einfach, um genau zu verstehen, was da passiert.
Bei einem kleinen Projekt kannst du vielleicht anfangs noch durchblicken.
Was ist bei größeren Projekten? Was ist, wenn du nach Monaten noch einmal reinschauen musst? Was ist mit Nachfolger von dir?
Gibt es Dokumentation zu deinem Framework? Gibt es eine Community für Fragen?


Ich habe Erfahrung mit CakePHP, welches relativ einfach aufzusetzen ist.
Mit Laravel, welches anscheinend ziemlich beliebt zurzeit ist, hatte ich meine Probleme beim Installieren der mitgelieferten VM. Danach hatte ich es aufgegeben. (Es war sowieso nur als private Erkundung gedacht und ich hatte zu jener Zeit keine Nerven mehr, die genauen Ursachen des Problems zu finden.)

Probieren geht über Studieren :p
 
Zurück