dedlfix: Schlangencode / Spaghetticode verhindern

Beitrag lesen

Hi!

Wie sollte der Aufbau des Zielarrays sein? Und wie komm ich da hin?

Er soll so sein, dass du damit (effektiv und effizient) arbeiten kannst. Ich kenne deine Anforderungen nciht und kann meine Meinung nur allgemein geben, so wie ich ein Menü ohne Spezialanforderungen bauen würde. Da du ebenfalls nicht gesagt hast, welche Bedeutung die Felder haben, fang ich mal an zu raten.

[menuid] => 12

Ist die Bedeutung, dass es mehrere Menüs geben kann und dies eine Zuordnung zu einem Menü angibt? Dann Brauchst du das Feld in der Anwendung nicht. Hauptsache, du legst eine Struktur (ein Array) an, in der mehrere Menüs Platz finden, wenn du mehrere gleichzeitig aus dem DBMS holst. Wenn du immer nur ein Menü verwendest, dann brauchst du das Feld sicher nicht und kannst dir dessen Abfrage sparen.

[id] => 88

Wozu dient diese ID? Wenn du sie nicht brauchst, frag sie nicht ab.

[published] => 1

Wenn der Eintrag nicht angezeigt werden soll, kannst du ihn auch im DBMS lassen.

[parent] => 0

Diese Information ist wichtig, damit die Menüpunkte einem übergeordneten zugeordnet werden können. Nachdem du die flache Liste aus dem DBMS gelesen hast, sortierst du die Einträge unter den jeweiligen Elterneintrag und kannst diese Information verwerfen.

[sublevel] => 0

Vermutlich überflüssig.

[ordering] => 32

Die Sortierung kann das DBMS anhand dieses Feldes vornehmen. Wenn du geradeaus durch die Ergebnismenge gehst, werden die Daten auch in der Reihenfolge weiterverarbeitet / in Arrays gehängt / ... Dabei bleibt die Sortierung bestehen und du kannst dieses Feld aus der Ergebnismenge der Query entfernen.

Die anderen Punkte transportieren anscheinend Nutzdaten, so dass aus ihnen der Menüpunkt besteht. Hinzu kommt ein Feld, dass in einem weiteren Array alle Kinder des Menüpunktes aufnimmt.

Lo!