Unterkategorien in Baumstruktur nach parent_id per link aufrufen?

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

  • Unterkategorien in Baumstruktur nach parent_id per link aufrufen?

    Hallo Gemeinde!

    Mein Frage ist folgende. wie kann ich in einer Baumstruktur die sich in einer Tabelle befindet nach und nach per Linklick die jeweiligen zu Katergorie gehörenden Unterkategorien auslesen und erscheinen lassen?

    Also zum Anfang lasse ich die die Kategorien ausgeben die in der Spalte parent_id den Wert 0 haben,dies sind sozusagen die Absoluten Hauptkategorien.

    Das sieht dann so aus!

    PHP-Code:
    <?php
    $sqlbefehl 
    ="Select id,parent_id,name,level From $tab_baum";
    $ergebnis mysql_query($sqlbefehl)or die(mysql_error());
    while(
    $row mysql_fetch_array($ergebnis)){
        if(
    $row['parent_id']==0)
        {
            echo 
    "<br><a href=\"index.php?parent_id=".$row['id']."\">".$row['name']."</a>";
        }
    }
    ?>
    Das funktioniert auch sehr gut,nur jetzt weis ich nicht weiter. Ich will wenn ich auf den Link klicke das dann auf der selben index.php die Unterkategorien zur der angleickten Hauptkategorie erscheinen und das soll sich dann durch die Struktur so weiter ziehen!

    Kann mir jemand da helfen?

    Im Anhangbil baum.jpg könnt ihr Struktur der Tabelle sehen zur verdeutlichung meines Anliegens und Vorhabens.

    Vielen Dank für eure Hilfe mfg der Litter!
    Angehängte Dateien
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

  • #2
    Warum nicht gleich mit

    SELECT id, parent_id, name, level FROM $tab_baum WHERE parent_id = 0

    abfragen? Das wäre dann auch gleich der Ansatz für die Unterkategorien. Da setzt du eben statt 0 die id der ausgewählten Überkategorie in die Where-Klausel ein.

    Kommentar


    • #3
      Mittlerweile sieht das Script so aus!

      Jetzt bekomme ich von Anfang an diese Fehlermeldung hier schon beim Aufruf der Seite
      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='9'' at line 1

      Und wenn ich dann auf den Link klicke diese hier
      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='3'' at line 1

      Die erste Fehlermedung steht direkt neben dem letzten Link von denen die als erstes erscheinen!
      PHP-Code:
      <?php
      $cat 
      $_REQUEST['cat'];

      $sqlbefehl ="Select id,parent_id,name,level From $tab_baum where parent_id = 0";
      $ergebnis mysql_query($sqlbefehl)or die(mysql_error());
      while(
      $row mysql_fetch_array($ergebnis)){
          
      $id $row['id'];
          if(
      $row['parent_id']==0)
          {
              echo 
      "<br><a href=\"kopf.php?cat=".$row['id']."\">".$row['name']."</a>";
          }
      }

      if(isset(
      $cat))
      {
          
      $sqlbefehl ="Select id,parent_id,name,level From $tab_baum parent_id='".$id."'";
          
      $ergebnis2 mysql_query($sqlbefehl)or die(mysql_error());
          while(
      $row2 mysql_fetch_array($ergebnis2)){
              if(
      $row['id'] == $row['parent_id'])
              {
                  echo 
      "<a href=\"\">".$row['name']."</a>";
              }
          }
      }
      ?>
      Zuletzt geändert von litterauspirna; 20.04.2008, 21:45.
      Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
      http://www.lit-web.de

      Kommentar


      • #4
        Keiner einen Rat für mich?
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        http://www.lit-web.de

        Kommentar


        • #5
          echo $sqlbefehl
          das ganze in phpmyadmin und gucken was los is

          Kommentar


          • #6
            Da du die Regeln nicht befolgst und die vollständige Query nicht gepostet hast, sollte es dich nicht mehr wundern, dass dir niemand helfen mag.

            Im Übrigen bist du mal wieder ganz schön dreist schon nach < 2 Stunden zu drängeln...

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Da du die Regeln nicht befolgst und die vollständige Query nicht gepostet hast, sollte es dich nicht mehr wundern, dass dir niemand helfen mag.

              Im Übrigen bist du mal wieder ganz schön dreist schon nach < 2 Stunden zu drängeln...
              Wann habe ich bitte mal gedrängelt? Und sollte es auch nicht rüber kommen,ich denke ein klein wenig Respeckt kann man schon erwarten,so ein angepflaume muss gleube ich nicht sein!!

              Und in wie fern habe ich die Regeln nicht beachtet und nicht die ganze query gepostet? Ist doch im Beitrag im Code alles zu sehen!

              Die zweite Abfrage wird gar nicht erst ausgeführt. Hab da den echo $sqlbefehl; gemacht aber wenn ich den Link klicke passiert gar nix!
              Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
              http://www.lit-web.de

              Kommentar


              • #8
                wie unser altkanzler kohl schon sagte:
                entscheidend ist was hinten rauskommt

                also überprüfe deine queries, die du mit echos ausgibst,
                ob da nicht eventuell der wurm drin ist.

                vergleiche query mit tabellenstrukur
                überprüfe syntax ggf. in phpmyadmin

                mit You have an error in your SQL syntax; kann man ohne glaskugel nich so viel anfangen

                btw sollte das $id im zweiten query nicht ein $cat sein?

                Kommentar


                • #9
                  Die Sache ist die das der erste query Ordnungsgemäß ausgeführt wird. Doch beim zweiten passiert gar nichts,wenn ich auf den Link klicke der im ersten query steht um die dazugehörigen Unterkategorien anzuzeigen passiert einfach nichts!


                  Der Code sieht jetzt so aus.
                  Wenn ich auf den Link klicke steht das hier in der Browseradresszeile
                  http://localhost/raiser/kopf.php?parent_id=1

                  Aber angezeigt wird gar nichts sondern es bleiben nach wie vor die Kategorien stehen wie sie am Anfang beim aufruf erscheinen!
                  PHP-Code:
                  <?php
                  $cat 
                  $_REQUEST['cat'];

                  $sqlbefehl ="Select id,parent_id,name,level From $tab_baum where parent_id = 0";
                  $ergebnis mysql_query($sqlbefehl)or die(mysql_error());
                  while(
                  $row mysql_fetch_array($ergebnis)){
                      
                  $id $row['id'];
                      if(
                  $row['parent_id']==0)
                      {
                          echo 
                  "<br><a href=\"index.php?parent_id=".$row['id']."\">".$row['name']."</a>";
                      }
                  }

                  if(
                  $row['parent_id']!=0)
                  {
                      
                  $sqlbefehl ="Select id,parent_id,name,level From $tab_baum parent_id='".$cat."'";
                      
                  $ergebnis2 mysql_query($sqlbefehl)or die(mysql_error());
                      while(
                  $row2 mysql_fetch_array($ergebnis2)){
                          if(
                  $row2['id'] == $row2['parent_id'])
                          {
                              echo 
                  "<a href=\"\">".$row2['name']."</a>";
                          }
                      }
                  echo 
                  $sqlbefehl;
                  }
                  ?>
                  Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                  http://www.lit-web.de

                  Kommentar


                  • #10
                    Wenn du an einem Sonntag abend den Usern keine zwei Stunden (genau genommen sogar nur eine Stunde) Zeit gibst zu reagieren - vermutlich weil du den ganzen murks morgen früh abgeben musst oder so - dann soll man das nicht als Drängeln empfinden?

                    Geh immer davon aus, dass man dir helfen wird, wenn man kann und will. Also bedarf es nun wirklich keiner Nachfrage. Und wer trotz (mitlererweile drei) Hinweisen es nicht schafft eine vernünftige Testausgabe zu machen, der hat in meinen Augen auch gar keine Hilfe mehr zu erwarten.

                    Kommentar


                    • #11
                      Du Troll!

                      Wenn dein Script in Zeile 18 abbricht, wieso versuchst du dann die Testausgabe DANACH in Zeile 25 zu machen?

                      Denkst du generell nicht nach, was du da machst, oder schieben wir das mal einfach auf die Uhrzeit?

                      PS: Das hat echt nichts mit anpflaumen zu tun, aber sowas ist einfach unvorstellbar!

                      Kommentar


                      • #12
                        angeblich passiert ja jetzt garnichts mehr - wo sind denn die fehler hinverschwunden?

                        PHP-Code:
                        $sqlbefehl ="Select id,parent_id,name,level From $tab_baum where parent_id = 0";
                        ...
                        if(
                        $row['parent_id']!=0
                        na fällt jetz was auf?

                        wie wärs wenn du mal bei einem struktogramm anfängst?
                        hier scheiterts meiner meinung nach an der programmlogik

                        Kommentar


                        • #13
                          Mir fehlt grad jeder Gedanke wie ich die zweite Abfrage machen soll.

                          Die erste haut ja hin.
                          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                          http://www.lit-web.de

                          Kommentar


                          • #14
                            Du machst die Zweite Abfrage bereits. Die schlägt nur leider fehl.

                            Es muss wirklich an der späten Stunde liegen, daher würde ich doch vorschlagen dass du morgen früh daran weiter arbeitest. Hat so irgendwie keinen Sinn. Du siehst nicht mal mehr wo hinten und wo vorne ist.

                            Kommentar


                            • #15
                              Hier mal ein rudimentäres halbgares Klappmenue aus meiner experemier Kiste: http://combie.de/fragmente/rekursives_menue/showsrc.php
                              Evtl. kannst du dir ja was davon abschauen...

                              Besonderheit:
                              Der ganze Klumpatsch wird in einem Rutsch in ein Array geladen.

                              Vorteil:
                              Das geht ruckzuck, nur ein Query. Spielend einfaches Navigieren im Array

                              Nachteil:
                              Bei einigen hundert Elementen wird es dann richtig ineffektiv.
                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X