rekursiv denkproblem

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

  • rekursiv denkproblem

    Das rekursive auslesen der DB iss ja an sich nicht das problem, allerdings hab ich grade ein kleines denkproblem zwecks der darstellung.

    $a = Level der Rubrik (bsp: Level 1 , Level 2 ...

    Der Aufbau der Tabelle sieht folgendermaßen aus:

    ID | UID | RUBRIKNAME

    Wenn also bei der Hauptrubrik 1 zwei Unterrubriken rein sollen ist der Eintrag so:

    1 | 1 | Rubrikname
    1 | 2 | Rubrikname

    u.s.w.

    Nur übergibt der nach der Unterrubrik das aktuelle Level auch an Level 1 ... Was mach ich falsch? Hier das Script:

    PHP-Code:
    function readRubs2($uid,$a){
    $rres mysql_query("SELECT * FROM rubrik WHERE uid='".$uid."'");
         if(
    mysql_num_rows($rres)!=0){
        while(
    $R mysql_fetch_object($rres)){
         echo 
    '<option value="'.$R->id.'">';
             echo 
    $a.' '.$R->rubname.'</option>';
                
    readRubs2($mpref,$R->id,$a++);
        }
       }
    }

    // AUFRUF PER //
    readRubs2(0,0); 
    Signatur-Text ...

  • #2
    Irgendwie ist deine Denkweise bzw. das niederschreiben komisch!(nicht böse gemeint)

    du schreibst so deine DB Struktur hier nieder.

    ID|UID|Rubrikname

    Und so soll er es rein schreiben!

    1|1|rubrik
    1|2|rubrik

    Hast du die ID auf autoincrement gesetzt und primary key?

    Ein paar mehr Infos wären gut zur DB Tabelle!

    Desweiteren hat im Script $a keine Nullwert also keinen Startwert auf den $a hochgesetzt werden soll.
    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


    • #3
      Wie sieht denn mit der 2. Hauprubrik aus? Etwa so?

      1 | 1 | Rubrikname
      1 | 2 | Rubrikname
      2 | 1 | Rubrikname
      2 | 2 | Rubrikname

      => Deine Tabellenstruktur ist Käse, daher kann es nicht gut gehen. Ändere die Struktur in
      PHP-Code:
      ID MainID sName
      1        0   Main1
      2        1   Sub1_1
      3        0   Main2
      4        1   Sub1_2
      5        3   Sub2_1
      6        3   Sub2_2
      7        2   Sub1_1_1 
      Dann klappt's auch mit rekursiver Ausgabe

      Kommentar


      • #4
        Original geschrieben von litterauspirna
        Irgendwie ist deine Denkweise bzw. das niederschreiben komisch!(nicht böse gemeint)
        hehe
        Original geschrieben von litterauspirna
        du schreibst so deine DB Struktur hier nieder.

        ID|UID|Rubrikname

        Und so soll er es rein schreiben!

        1|1|rubrik
        1|2|rubrik

        Hast du die ID auf autoincrement gesetzt und primary key?
        Ja
        Original geschrieben von litterauspirna
        Ein paar mehr Infos wären gut zur DB Tabelle!
        Also :

        ID = autoincrement
        Wenn Uid = 0 ist, dann ist dies eine Hauptrubrik
        Ist uid != 0 ist dies eine Unterrubrik der angegebenen uid

        Bsp:
        PHP-Code:
          Hauptrubrik 1 ID1 UID0
             Unterrubrik  1 
        ID2 UID1
             Unterrubrik  2 
        ID3 UID1
          Hauptrubrik 2 
        ID4 UID0
             Unterrubrik  1 
        ID5 UID4
             Unterrubrik  2 
        ID6 UID4
                   Unterrubrik  1 
        ID7 UID6

        // und so weiter ... // 
        Original geschrieben von litterauspirna
        Desweiteren hat im Script $a keine Nullwert also keinen Startwert auf den $a hochgesetzt werden soll.
        hä ???
        Signatur-Text ...

        Kommentar


        • #5
          kann ich bei der funktion nicht irgendwie angeben, in welchem level ich mich befinde? bsp:

          1. durchlauf
          1. unterdurchlauf
          2.durchlauf

          u.s.w.
          Signatur-Text ...

          Kommentar


          • #6
            Wenn du schon an sowas dran sitzt, empfehle ich dir dringend

            http://www.klempert.de/nested_sets/artikel/

            anzusehen.

            Kommentar


            • #7
              Original geschrieben von b0mbe
              Wenn du schon an sowas dran sitzt, empfehle ich dir dringend

              http://www.klempert.de/nested_sets/artikel/

              anzusehen.
              Schön und gut aber die tabelle kann ich nicht ändern, weil die so bleiben soll - ich muss ein altes system neu überarbeiten und die tabellen müssen so bleiben wie se sind
              Signatur-Text ...

              Kommentar

              Lädt...
              X