Datenbankgestütztes Menü

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

  • Datenbankgestütztes Menü

    Ich versuche gerade mein altes Navigationsmenü auf ein datenbankgestütztes Menü um zu schreiben.

    Leider hänge ich dabei ein klein bisschen bei der Anzeige.

    Die alte struktur sah so aus:
    PHP-Code:
    ?php
                    
    switch($_GET['action'])
                    {
                      case 
    'home':
                    include(
    'middle.php');
                    break;
                    case 
    'gb':
                    include(
    'gaestebuch.php');
                    break; 
    ist nur ein auszug.

    Die neue sieht bis jetzt so aus:
    PHP-Code:
    $strukt=mysql_query("SELECT * from menu");
                    while(
    $struktur mysql_fetch_array($strukt)){
                        switch(
    $_GET['action'])
                        {
                        case 
    $struktur['link']:
                        include(
    $struktur['pfad_text']);
                        break 
    2;
                         default:
                        include(
    'middle.php');
                       break 
    2
                        }
                    } 
    leider kann ich bei dieser variante die anzuzeigenden seiten nicht mehr aufrufen.

    Es erscheint auch keine Fehlermeldung oder sonstiges, sondern es wird grundsätzlich nur die seite angezeigt die unter default eingetragen ist.

    Entferne ich die zahlen hinter dem break, funktionieren die seiten aufrufe, allerdings wird die middle.php mit angezeigt und das auch mehrfach, was nicht sinn und zweck der ganzen sache ist.

    hat vielleicht jemand eine idee woran das liegen könnte?
    Was nicht fliegen kann, kann auch nicht abstürzen

  • #2
    wozu überhaupt ein case?

    liste die menüpunkte doch ganz normal untereinander zu tun.

    aber was hat dein alter code damit zu tun? der ist doch nur dazu da, um den inhalt zu includen, nicht jedoch um das menü zu erstellen.

    Kommentar


    • #3
      Ja weiß ich.

      Der Aufruf für die links sieht so aus:
      PHP-Code:
      <?php
      $navigat
      mysql_query("SELECT link, link_text FROM menu WHERE kategorie ='Bilder'");
      while(
      $links mysql_fetch_array($navigat)){
      echo 
      "<tr bordercolor=\"black\" align=\"top\">
      <tr bgcolor=\"#000000\" bordercolor=\"#999999\">
      <td onMouseOver=\"style.backgroundColor='#006EA5'\" onMouseOut=\"style.backgroundColor='#102F68'\" 
      width=\"0\" bgcolor=\"#102F68\"> 
      <div align=\"center\"><a href=?action="
      .$links[link]." class=\"menu\"><b>
      <span class=\"buttons\">"
      .$links[link_text]."</span>
      </b></a></div> 
      </td>"
      ;
      }
      ?>
      Zuletzt geändert von hoschy; 23.11.2004, 20:02.
      Was nicht fliegen kann, kann auch nicht abstürzen

      Kommentar


      • #4
        brich den code um!

        also hast du gar kein problem mit dem menu???

        Kommentar


        • #5
          also der unsinn liegt darin dass Du die while schleife bei default abbrichst, wenn der erste Datensatz nicht zu einem treffer führt...
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Nur mit dem aufruf der seiten wenn ich das so wie oben aufgelistet mache.
            Was nicht fliegen kann, kann auch nicht abstürzen

            Kommentar


            • #7
              dann schreib das doch gleich, würde ne menge postings sparen.

              mello hat dir was gepostet.

              wozu brauchst du da überhaupt ne whileschleife?? warum machst du es nicht so wie vorher?

              OffTopic:
              das mit dem anbieten von dyn. Programmierung überlegen wir uns aber noch mal, gell
              Zuletzt geändert von TobiaZ; 23.11.2004, 20:11.

              Kommentar


              • #8
                Original geschrieben von MelloPie
                also der unsinn liegt darin dass Du die while schleife bei default abbrichst, wenn der erste Datensatz nicht zu einem treffer führt...
                In der Datenbank stehen ja daten drin mit denen die links erstellt werden sollen. auch die seiten sind vorhanden.

                Original geschrieben von TobiaZ
                dann schreib das doch gleich, würde ne menge postings sparen.

                mello hat dir was gepostet.

                wozu brauchst du da überhaupt ne whileschleife?? warum machst du es nicht so wie vorher?
                Damit später, wenn die seite mal fertig ist, via Formular die link namen und links nicht von hand in den Quelltext eingegeben werden müssen.
                Das dazu gehörige Formular soll ja auch die möglichkeit bieten, die seiten hochzuladen damit man sich auch ein FTP Programm sparen kann.

                Die Schleife ist dafür gedacht, das alle benötigten daten aus der DB geholt werden sollen und zwar solange, bis nichts mehr drin steht.
                Was nicht fliegen kann, kann auch nicht abstürzen

                Kommentar


                • #9
                  In der Datenbank stehen ja daten drin mit denen die links erstellt werden sollen.
                  Na wat denn nu? Is dat Menu jetzt da, oder nicht???

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    Na wat denn nu? Is dat Menu jetzt da, oder nicht???
                    Das Menü ist da, aber wie ich schon bereits erwähnte, funktioniert es nicht.

                    So sieht es zur zeit aus
                    Was nicht fliegen kann, kann auch nicht abstürzen

                    Kommentar


                    • #11
                      Original geschrieben von MelloPie
                      also der unsinn liegt darin dass Du die while schleife bei default abbrichst, wenn der erste Datensatz nicht zu einem treffer führt...
                      nur nehme ich default aus der schleife raus, funktioniert gar nichts mehr. also, ich meine wenn ich die while schleife in die switch anweisung packe und die schleife vor dem default zu mache.
                      Was nicht fliegen kann, kann auch nicht abstürzen

                      Kommentar


                      • #12
                        klar funktioniert dein Menu. Zumindest lässt sich auf der Grafik nichts gegenteiliges erkennen.

                        Dein Problem ist, dass einbinden der Seite, und da frage ich mich, warum du es nicht machst, wie bisher.

                        Kommentar


                        • #13
                          Damit später, wenn die seite mal fertig ist, via Formular die link namen und links nicht von hand in den Quelltext eingegeben werden müssen.
                          Das dazu gehörige Formular soll ja auch die möglichkeit bieten, die seiten hochzuladen damit man sich auch ein FTP Programm sparen kann.
                          Quasi, komplett online administrierbar. Von A bis Z. Und dazu gehört für mich auch das hinzufügen der Links für die Navigation.

                          Und genau aus dem grund mache ich das nicht wie vorher. Denn da muss ich ja noch alles von hand eingeben.
                          Was nicht fliegen kann, kann auch nicht abstürzen

                          Kommentar


                          • #14
                            Quasi, komplett online administrierbar. Von A bis Z. Und dazu gehört für mich auch das hinzufügen der Links für die Navigation.
                            Aber die Links werden doch schon angezeigt, oder nicht? Also funktioniert das Menu.

                            Und genau aus dem grund mache ich das nicht wie vorher. Denn da muss ich ja noch alles von hand eingeben.
                            Willst du den Inhalt der Seite auch aus der DB raus holen? Dann mach doch ein
                            select inhalt from x where page=y
                            denn auch da brauchst du keine schleife oder case oder sonst sowas.

                            Kommentar


                            • #15
                              Nein, den inhalt der seiten nicht. Nur die links und den Aufruf der einzelnen Seiten (Name der aufzurufenden Datei + den namen der dafür in der Navigation benutzt wird). Soll heißen:

                              Die Datei für das impressum heißt impr.php.

                              Der Link für die navigation heißt ?action=imp

                              in der switch steht dann
                              PHP-Code:
                              case 'imp':
                              include(
                              'impr.php');
                              break; 
                              Und das ganze soll nun variabel über eine Datenbank gestalten werden.

                              Und das Menü funktioniert nicht. Es wird zwar angezeigt, aber das alleine reicht ja nicht. Die links müssen ja auch noch funktionieren, damit die aufgerufenen Seiten angezeigt werden können.
                              Was nicht fliegen kann, kann auch nicht abstürzen

                              Kommentar

                              Lädt...
                              X