Probleme mit Kategorieen

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

  • Probleme mit Kategorieen

    Hallo!
    Ich möchte einen Kategorienbaum mit n Unterkategorien anlegen. Meine Tabelle TKategorie hat die folgenden Felder:
    KategorieID Name Beschreibung ParentID Aktiv

    Das einstellen klappt auch Problemlos, z.B.:
    KategorieID Name Beschreibung ParentID Aktiv
    3 # test12 # 3 # 1
    4 # test12a # 3 # 1
    5 # test12aa # 4 # 1

    Jetzt möchte ich das Ganze in einem Dropdown-Feld ausgeben, auch kein Problem, ABER ich möchte, dass die Darstellung so ist:

    test12 (Hauptkategorie)
    + test12a (UK von test12)
    ++ test12aa (UK von test12a)
    usw.

    hier der code:
    PHP Code:
    echo "<select name=ParentID>";
    #HKs ausgeben....
    $sql "SELECT * FROM `tkategorie` WHERE Aktiv='1' ORDER BY Name";
    $result mysql_query($sql) OR die(mysql_error());
    echo 
    "<option value='Hauptkategorie'>Hauptkategorie</option>";
    echo 
    "<option value='Hauptkategorie'>***</option>";
    echo 
    "<option value='Hauptkategorie'>Unterkategorie von...</option>";
    while(
    $row mysql_fetch_assoc($result))        
    {
    $ParentKategorieID=$row['KategorieID'];
    $Name=$row['Name'];
    echo 
    "<option value='$ParentKategorieID'>+ $Name</option>";
    }
    echo 
    "</select>"
    Momentan wird es so ausgegeben:
    + test12
    + test12a
    + test12aa

    Wie kann ich das lösen??

    Danke und Gruss

  • #2
    Wenn du alle Einträge mit einem + davor ausgibst ist das ja auch klar.
    it's not a bug,
    it's a feature!

    Comment


    • #3
      genau, steht ja im code.... wie geht es besser

      Comment


      • #4
        PHP Code:
        $string '';
        while(){
        echo 
        $string.$ausgabe;
        $string .= '+';

        Für Rechtschreibfehler übernehme ich keine Haftung!

        Comment


        • #5
          Original geschrieben von websdream
          genau, steht ja im code.... wie geht es besser
          Rekursiv auslesen und der Tiefe entprechend die + einbauen, z.B. mit einem static variable als Entscheidungshilfe. So wie du es zur Zeit machst musst du parentid prüfen und entscheiden.

          Comment


          • #6
            danke!!!

            Comment


            • #7
              uuuupss, doch noch nicht - zu früh gefreut...

              jetzt
              $string = '';
              while(){
              echo $string.$ausgabe;
              $string .= '+';
              }
              wird natürlich vor jede ausgabe ein + gesetzt
              also ergibt sich meine baumstruktur so

              test1
              +test1a
              ++test1b
              +++test1c
              ++++test1d

              und NICHT so:
              test1
              +test1a
              +test1b
              ++test1c
              +++test1d
              +++test1e

              und jetzt? da steig ich nicht durch....

              Comment


              • #8
                na komm,

                wenn du das ein plus mehr nur setzen sollst wenn sich der parent ändert, dann geht das doch mit ner if() ganz gut, oder?

                Comment


                • #9
                  ggf. mal nach nested sets googlen

                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Comment


                  • #10


                    PHP Code:
                    if($KategorieID == $ParentID)
                    {
                    echo 
                    "<option value='$KategorieID'>$Name</option>";
                    $string .= '';
                    }
                    else
                    {
                    echo 
                    "<option value='$KategorieID'>$string $Name</option>";
                    $string .= '+';

                    ausgabe:
                    test
                    +test1
                    ++test1a
                    +++test1b
                    test2
                    +++++test2a

                    wie kann ich das abfangen??

                    vielen dank
                    Attached Files

                    Comment


                    • #11
                      lies dir mal das tutorial durch. da wird dein problem genau beschrieben und auch eine lösung geliefert

                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Comment


                      • #12
                        oder schau mal hierein http://www.php-resource.de/forum/sho...threadid=44274

                        Comment


                        • #13
                          nach wirklich langer sucherei bin ich auf Nested Sets DB Tree gestossen:

                          http://www.phpclasses.org/browse/package/2547.html

                          ist genau das was ich suche & sehr gut zu modifizieren bzw. zu integrieren.

                          danke für die hilfe.

                          Comment

                          Working...
                          X