Ankündigung

Einklappen
Keine Ankündigung bisher.

Menu + Submenu Script problem

Einklappen

Neue Werbung 2019

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

  • Menu + Submenu Script problem

    Guten tag,
    ich habe per CSS ein Menu und ein submenu realisiert, jedoch funktioniert meine ausgabe vom php script nicht so wie es soll. Das normale menü wird ohne probleme ausgegeben nur wenn ein untermenü besteht, wird dieses nicht mitreingebracht.

    Hier der Code:
    PHP-Code:
    <?php
    $query 
    "SELECT * FROM neu_menu ORDER BY Sort_ID;";
    $ergebnis mysql_query($query)or die(mysql_error().$sqlbefehl);

    echo 
    '<ul id="Navigation">';
    while(
    $row mysql_fetch_array($ergebnis)){
        echo 
    '<li>';
        echo
    '<a href="'.$row["link"].'">'.$row["Name"].'</a>';
        if(
    $row["HAS_CHILDS"] == 1)
       {
           
    $child "SELECT * FROM neu_menu_child WHERE id = '".$row["id"]."'";
           
    $childergebnis mysql_query($child);
           while(
    $row1=mysql_fetch_array($childergebnis)){
               echo 
    '<ul><li><a href="'.$row1["link"].'">'.$row1["Name"].'</a></li></ul>';
           }
       }

        echo 
    '</li>';
    }
    echo 
    '</ul>';
    ?>
    wäre nett wenn ihr mir sagen könntet wo mein fehler ist =/


  • #2
    Woher sollen wir das wissen? Fang an zu debuggen!
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      PHP-Code:
      $child "SELECT * FROM neu_menu_child WHERE id = '".$row["id"]."'"
      ich weiß ja nich wie deine DB aufgebaut ist, aber wenn du die $row-ID nimmst, kriegste das selbe row wieder ^^

      ich vermute ja mal das du da ein datenbankfeld ala "parentID" oder so hast, das wäre schon eher das was du suchst
      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

      Kommentar


      • #4
        PHP-Code:
        while($row1=mysql_fetch_array($childergebnis)){
                   echo 
        '<ul><li><a href="'.$row1["link"].'">'.$row1["Name"].'</a></li></ul>';
               } 
        Willst du für jeden Untermenüpunkt ein neues <ul> erstellen ?
        Signatur:
        PHP-Code:
        $s '0048656c6c6f20576f726c64';
        while(
        $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

        Kommentar


        • #5
          wenn ein untermenüpunkt besteht. Dafür prüfe ich das mit dem Boolischen wert (tinyint) HAS_CHILDS ab.

          $row ist für das Parentmenü und dort soll er die Child menupunkte abfragen (in der Tabelle neu_menu_child, nicht neu_menu) und für den child is $row1

          Kommentar


          • #6
            Ok, ich sehe schon so kommen wir nicht weiter, sag uns einfach mal alle Spalten der Tabellen und sag zu jeder (Spalte) was drinn steht.

            Was ich gemeint habe is folgendes:
            Nehmen wir an, einen Menüpunkt mit 2 Unterpunkten:
            Code:
            <ul>
                <li>
                    <a>
                        Text
                    </a>
                    <ul><li><a>Text #2</a></li></ul>
                    <ul><li><a>Text #2</a></li></ul>
                </li>
            </ul>
            Signatur:
            PHP-Code:
            $s '0048656c6c6f20576f726c64';
            while(
            $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

            Kommentar


            • #7
              neu_menu Spalten:
              id | Name | Sort_ID | link | HAS_CHILDS

              neu_menu_childs Spalten:
              id | Name | parent_id | link | Sort_ID

              und nein das soll nicht so sein, ist mir eben auch erst aufgefallen, ich danke dir. Aber das ist nicht das Problem, da er nichtmal einen untermenüpunkt ausgibt.

              Kommentar


              • #8
                PHP-Code:
                $child = "SELECT * FROM neu_menu_child WHERE id = '".$row["id"]."'";
                ich weiß ja nich wie deine DB aufgebaut ist, aber wenn du die $row-ID nimmst, kriegste das selbe row wieder ^^

                ich vermute ja mal das du da ein datenbankfeld ala "parentID" oder so hast, das wäre schon eher das was du suchst
                Lies das nochmal genau durch, vorallem den letzten Satz und dann schau nochmal deine Spalten an:
                neu_menu_childs Spalten:
                id | Name | parent_id | link | Sort_ID
                Signatur:
                PHP-Code:
                $s '0048656c6c6f20576f726c64';
                while(
                $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

                Kommentar


                • #9
                  wieso nicht?:
                  id | parentid | name | link | sortid

                  Wenn partentid=0 dann ist das die oberste Ebene.
                  Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                  Kommentar


                  • #10
                    *kopf->tisch* omg und danach habe ich jetzt ne halbe stunde lang gesucht. Ich danke dir ByStones.

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php 
                      $query 
                      "SELECT * FROM `neu_menu` ORDER BY Sort_ID;"
                      $ergebnis mysql_query($query)or die(mysql_error().$sqlbefehl); 

                      echo 
                      '<ul id="Navigation">'
                      while(
                      $row mysql_fetch_array($ergebnis)){ 
                          echo 
                      '<li>'
                          echo
                      '<a href="'.$row['link'].'">'.$row['Name'].'</a>'
                          if(
                      $row['HAS_CHILDS'] == 1
                         { 
                             
                      $child "SELECT * FROM `neu_menu_child` WHERE `id` = '".$row['id']."'"
                             
                      $childergebnis mysql_query($child); 
                             while(
                      $row1=mysql_fetch_array($childergebnis)){ 
                                 echo 
                      '<ul><li><a href="'.$row1['link'].'">'.$row1['Name'].'</a></li></ul>'
                             } 
                         } 

                          echo 
                      '</li>'

                      echo 
                      '</ul>'
                      ?>
                      versuchs mal so

                      Kommentar

                      Lädt...
                      X