Dynamisches HTML Menü aus einer SQL Datenbank

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Ok, werd den Code ein bisschen leserlicher gestalten, bzw. kommentieren und dann hier posten.
    Kann allerdings ein bisschen dauern, weil ich jetzt dann ein paar Tage weg bin.

    Comment


    • #17
      ok, dann bin ich mal gespannt
      GLORIA PERPETUA

      Comment


      • #18
        mhhhhh ... bin nicht sicher ob ich dir helfen kann weil ich hab so was in der Art gebastelt ... allerdings hab ich noch kein Admitool dafür ... also müsstest du versuchen bei dem Script selber durchzusteigen und es entsprechend umzuschreiben ...
        Prinzip ist ähnlich ... bloß daß ich nicht mit mehrer Spalten für die IDs gearbeitet habe sondern die IDs durch einen Doppelpunkt getrennt sind:

        Also erstmal die Beispiel-Tabelle:

        -------------------------------------------------------------------------------
        sort | kid | name | type |
        ---------------------------------------------------
        1 | 155: | Flieger | 0
        1 | 155:156: | große | 1
        2 | 155:157: | kleine | 1
        2 | 158: | Autos | 0
        1 | 158:159: | Cabrios | 1
        -------------------------------------------------------------------------------

        Folgende Struktur kommt somiz im Endeffekt heraus:

        - Flieger
        --> große
        --> kleine
        - Autos
        --> Cabrios
        -------------------------------------------------------------------------------

        Dabei gilt für Spalte "type"

        0 = Es handelt sich um einen Ordner mit Untergeordneten Strukturen

        1 = Es handelt sich um eine Seite
        -------------------------------------------------------------------------------

        wird zu Beipsiel Cabrios (158:159 gewählt kann in einer anderen Tabelle nach dem Eintrag 158:159: gesucht werden und diese ID einer bestimmten aufzurufenden Seite zugeordnet werden ... damit das so funktioniert muss natürlich der Code entsprechend angepasst werden ...


        So: Jetzt zu Code

        -------------------------------------------------------------------------------

        <?php
        //--------------------------------- Variablendefinition ------------------------------------
        $get=$HTTP_GET_VARS;
        if (empty ($get['kat']))$get['kat']=""; //---- Ergänzung wenn kat nicht vorhanden
        if (empty ($get['do']))$get['do']="showbasket"; //---- Ergänzung wenn do nicht vorhanden
        $get2=explode("|",$get['do']);
        $db_hostname="xxx";
        $db_username="xxx";
        $db_password="xxx";
        $db_name="xxx";
        $search_for='';
        $anzahl_dp=substr_count($get['kat'], ":");
        $kat_detail=explode(":",$get['kat']);
        $space='&nbsp;&nbsp;';

        //----------------------------------- Connect -------------------------------------------
        $connection=mysql_connect ($db_hostname, $db_username, $db_password);
        mysql_select_db($db_name);
        // ------------------ oberste --------------
        print "&nbsp;<img src=\"pics/book.gif\" width=\"10\" height=\"10\" border=\"0\">&nbsp;<a class=\"lt1\" href=index.php?kat=>Übersicht</a><br>";
        //--------------------------------- Vorkategorien -----------------------------------------
        if ($anzahl_dp>0)
        {
        for ($navi_i=0;$navi_i<=$anzahl_dp-1;$navi_i++)
        {

        $search_for=$search_for.$kat_detail[$navi_i].':';
        $result = mysql_query("SELECT * FROM navi WHERE kid = '$search_for' ORDER BY type, sort");
        $row = mysql_fetch_array($result);
        print $space."<img src=\"pics/o_open.gif\" width=\"10\" height=\"10\" border=\"0\">&nbsp;<a class=\"lt1\" href='index.php?kat=".$search_for."'>".$row['name'].'</a><br>';
        $space=$space.'&nbsp;';
        }
        }
        //------------------------- anzeige der aktuellen Kategorie --------------------------------
        $space=$space.'&nbsp;';
        $search_for='^'.$get['kat'].'[1-9]*:$';
        $result = mysql_query("SELECT * FROM navi WHERE (kid REGEXP '$search_for') ORDER BY type, sort");
        while($row = mysql_fetch_array($result))
        {
        if ($row['type']==0) {
        print $space."<img src=\"pics/o_closed.gif\" border=\"0\">&nbsp;<a class=\"lt1\" href='index.php?kat=".$row['kid']."'>".$row['name'].'</a><br>';}
        if ($row['type']==1) {
        print $space."<img src=\"pics/s_open.gif\" border=\"0\">&nbsp;<a class=\"lt1\" href='index.php?kat=".$get['kat']."'>".$row['name'].'</a><br>';}
        }
        mysql_free_result($result);
        ?>

        -------------------------------------------------------------------------------

        Sieht vielleicht jetzt etwas durcheinander aus aber wenn man da erstmal durchgestiegen ist klappt das schon
        Don't dream your life but live your dream
        (c)DJ Species ;-)

        Comment


        • #19
          WOW!!! Danke

          Muss mich aber erst einmal ganz in Ruhe durch deinen Code hangeln! Sieht aber interessant aus *g*

          Kleine Frage noch: ist dein Script festgelegt auf nur 2 Ebenen?
          Das wäre nämlich ein Problem. Ich brauche min. 3 Ebenen.
          Mal schauen, vielleicht lässt sich dein Script ja noch dementsprechend erweitern.

          Trotzdem Danke
          GLORIA PERPETUA

          Comment


          • #20
            nene ... das lässt sich auf beliebig viele kat-IDs die durch Doppelpunkt getrennt sind erweitern ...
            D.h. beliebig viele ebenen ... also was unbedingt noch zu tun wäre:

            1) Entweder passende Grafiken wie im Script erstellen oder die Grafiken aus dem Script rausnehmen

            2) Die Style Sheet (Classes ) die im Script verwendetb sind erstellen oder rausnehmen

            3) das wichtigste an der Stelle: "if ($row['type']==1)" ... daß du das eben so anpasst damit per Get die richtigen Werte übergeben werden um die Seite zu identifizieren, die geladen werden soll ...

            ach ja - und denk dran :
            Die Datei in der das eingebunden ist muss natürlich index.php heißen ... ansonsten müsstest du das im Script auch ändern ...

            greetz

            Species
            Don't dream your life but live your dream
            (c)DJ Species ;-)

            Comment


            • #21
              aaaahhh...
              jetzt durchblicke ich so langsam die funktion!
              ich habe das immer nicht geblickt, mit der 2ten tabelle! aber jetzt ist´s klar

              hast du das script inrgendwo in action? ich würde es mir gerne mal ansehen!

              danke soweit... (wenn ich fragen habe, melde ich mich)

              GLORIA PERPETUA

              Comment


              • #22
                Hallo deklarmart,

                mein Lösungsansatz wäre nested sets. Wenn du etwas Geduld hast, poste ich heute abend was in das Code-Schnipsel Forum. Der entscheidende Vorteil ist der, daß die Verschachtelung beliebig ist; Nachteil, daß das Prinzip etwas schwer verständlich ist.

                Bis heute abend

                Fundamentum

                Comment


                • #23
                  aha, da bin ich ja mal gespannt!!!

                  aber was zum teufel ist "nested sets"?

                  hast du evt. auch ein online-beispiel, also eine Site, wo das Menü zu sehen ist?
                  Ich würde es mir gerne schon mal anschauen (bin so neugierig)

                  GLORIA PERPETUA

                  Comment


                  • #24
                    ne - leider hab ich das Script noch nicht im Einsatz ... erst wenn das komplette Shopsystem zu dem das dazugehört fertig ist und online geht. Aber lokal mit dem Xitami-Server funktionierts super

                    Greetz

                    Chriz
                    Don't dream your life but live your dream
                    (c)DJ Species ;-)

                    Comment


                    • #25
                      du machst mich immer neugieriger!
                      hast du den code schon bei "Code-Schnipsel" gepostet?

                      GLORIA PERPETUA

                      Comment


                      • #26
                        Hi

                        Ich bin fast fertig, dauerte länger als geplant, da gestern und heute noch ein paar Termine dazwischen kamen. Ersteinmal durchtesten, dann ins Schnipsel-Forum :-)

                        Man liest sich

                        Fundamentum

                        Comment


                        • #27
                          versprochen ist versprochen.
                          Hat zwar bissl gedauert, aber HIER könnt Ihr den fertigen Code-Schnipsel sehen.

                          Comment


                          • #28
                            @deklamart

                            Das Script kann schon einfügen, und auch ausgeben; aber nur die Menüpunkte nicht gescheit löschen Vielleicht hat jmnd. in der Runde Lust ein Menüscript aufzubauen, was auf "nested sets" aufbaut, sprich binärer Baum.

                            @zzet

                            danke
                            Bringt mich vielleicht auch noch auf Ideen

                            Man liest sich
                            Fundamentum

                            Comment


                            • #29
                              @fundamentum

                              Hi,

                              ich danke dir recht herzlich!!!
                              ich habe mir das script gestern schon mal intensiver angeschaut um "durchzusteigen" (ist nicht so schwer, aber trotzdem)
                              habe aber jetzt gerade sehr wenig zeit, um daran weiter zu bauen.
                              ich melde mich dann wieder, wenn irgendetwas nicht klappt!

                              vielen dank noch mal

                              ciao
                              GLORIA PERPETUA

                              Comment

                              Working...
                              X