Menü aus Datenbank generieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Menü aus Datenbank generieren

    Hallo zusammen,
    ich habe ein CMS geschrieben (mit parentid etc.).

    um Menüpunkte ändern zu können bzw. angezeigt zu bekommen habe ich eine Abfrage an die Menütabelle gestellt.

    PHP-Code:
    $sql="SELECT * FROM menu ORDER BY parentid"
    Ich bekomme dann halt sämtliche Menü und Untermenüpunkte ausgegeben. Allerdings ist es natürlich etwas unübersichtlich.

    Ich hätte das gerne so:

    Hauptmenüpunkt1 (parentid=0, id=1)
    Untermenü1 (Parentid=1)
    Untermenü2 (Parentid=1)
    Hauptmenüpunkt2 (parentid=0, id=4)
    Untermenü1 (Parentid=4)
    Untermenü2 (Parentid=4)
    etc.

    Kann mir jemand Tipps bzw. Hilfestellung geben, wie die Schleife aussehen muss, um das zu realisieren. Irgendwie krieg ichs nicht gerafft. Vielen Dank im voraus

  • #2
    wenn du nur maximal zwei eben haben willst, dann solltest du dir den sticky thread im sql-forum, in das ich dich hiermit verschoben habe, mal anschauen

    du verwendest dann deine menütabelle zweimal und die join-bedingung wäre dann irgendwas mit parent_id


    wenn du mehr ebenen/bel. viele haben willst, dann könntest du dir z. b. mal die suchergebnisse zu "menumenu" anschauen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      am einfachsten zwei while schleifen

      PHP-Code:

      while(haupt){

      //ausgabe

      //abfrage 2 
      //mit einer if-bedingung kann man dann noch steuern das nur bestimmte untermenüs ausgegeben werden.
      //Where parent = row['id']
      while(unter){
      //ausgabe
      }


      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        Servus,
        du könntest deine Menüeinträge auch ohne Parent-Ids speichern, bzw. auslesen. Dafür wird die ID als Pfad abgespeichert. Ein kleines Beispiel verdeutlicht das:
        EDIT:

        ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NAME:
        01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Einführung
        0101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allgemein
        0102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test
        0103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Produkte
        010301&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reihe 1
        010302&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reihe 2
        02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wir über uns
        0201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Die Firma
        0202&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Personen
        03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Impressum


        Der Vorteil: Es werden keine Joins zum Abfragen benötigt. Die Einträge können ganz einfach nach der ID sortiert ausgegeben werden. Über die Länge der ID erhält man die Navigationstiefe.

        Für die Abbildung von Baumstrukturen in rel. Datenbanken gibt es einige Ansätze mit jeweils Vor- und Nachteilen. Wenn du dich näher dafür interessiert, suchst du einfach mal danach im Netz. Da müsste es einiges geben.

        gruss Markus
        Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

        Kommentar


        • #5
          hi...

          ich möchte auch gern so ne struktur wie im ersten thread erreichen.

          main
          --sub
          --sub
          main
          --sub
          --sub

          meine tabellen sind aber vorgegeben mit dieser struktur::

          tbl_main:
          main_id | name |

          tbl_sub
          sub_id | main_id | name

          mit dieser abfrage:

          Code:
          $query = "SELECT m.name main, s.name sub, m.main_id mid, s.sub_id sid	
          		  FROM mainnav m
          		  LEFT JOIN subnav s ON s.main_id = m.main_id 
          		  AND m.main_id = '".$nav."'";
          muss ich noch zu viel mit php machen.
          gibts da noch ne besser abfrage?

          Kommentar


          • #6
            Ähm ... IMHO nein.

            Du hast aber ungewöhnliche Struktur eines Menüs Wenn du aber in der Form

            id | name | parentid

            in einer Tabelle umbaust, dann kannst du in PHP rekursiv sehr schön auslesen, und weil du nur 2 Ebene hast, geht auch schnell und gefahrlos

            Kommentar


            • #7
              ja, nur leider ist mir die struktur so vorgegeben, da kann ich leider nix machen.
              aber dann werd ich es so lassen wie ich es jetzt habe.

              OffTopic:

              @asp2php: könntest du mir mal nen guten link für ein tutorial für asp sagen? (Aufbau einer DB-Verbindung zu access, auslesen der db,stringfunktionen)

              Kommentar


              • #8
                Original geschrieben von lx-club

                OffTopic:

                @asp2php: könntest du mir mal nen guten link für ein tutorial für asp sagen? (Aufbau einer DB-Verbindung zu access, auslesen der db,stringfunktionen)

                z.B www.aspfaq.de oder www.asp-extra.de

                Kommentar


                • #9
                  danke dir. hab da ne kleinere sache zu machen, is aber ne asp umgebung. ich werd mir das mal ansehen, aber eins würde mich noch interessieren. gibts dort auch so was wie sessions?

                  Kommentar


                  • #10
                    ja, da gibt's sogar sowas wie applications
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Original geschrieben von mrhappiness
                      ja, da gibt's sogar sowas wie applications
                      ist auch was ganz feines, eignet sich für Speicherung von disconected recordset bestens für Menü

                      Kommentar


                      • #12
                        ok..danke.. so war jetzt genug OT :-)

                        Kommentar


                        • #13
                          Original geschrieben von asp2php
                          ist auch was ganz feines
                          jap

                          und für php kann man das nachbauen


                          und jetzt ist wirklich genug OT
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar

                          Lädt...
                          X