Anfänger/in Problem mit while-Schleife

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

  • Anfänger/in Problem mit while-Schleife

    Hallo,
    mal wieder ich ... :-(
    habe mir folgende Lösung erdacht um aus meiner Tabelle Haupt-und Untergruppen auf einer Seite darzustellen.
    Leider wirft die Geschichte jede Hauptgruppe in der Anzahl der Untergruppen aus - WAS MACHE ICH VERKEHRT?

    Schon einmal großen Dank
    sagt aus Hamburch
    Biene

    <table width="90%" align="center" cellpadding="2" cellspacing="0" border="0">
    <?php
    mysql_select_db($db);
    $sel = mysql_query("SELECT * FROM categories");
    while( $array = mysql_fetch_array( $sel ) ) {

    $select = mysql_query("SELECT * FROM categories where parent_id='$array[parent_id]'");
    $setarray = mysql_fetch_array($select);
    ?>
    <tr><td colspan="2"><br><br><b><? echo $setarray[parent_id] ?>hallo</b></td></tr>
    <tr><td colspan="2"><hr width="100%"></td></tr>
    <tr>
    <?
    do {
    ?>
    <td><a href="meinedomain.php?action=all&id=28"><b><? echo $setarray[categories_id]?></b></a></td>
    </tr>

    <?
    } while( $setarray = mysql_fetch_array($select) )
    ?>

    <?
    }
    ?>
    </table>

  • #2
    Häh?

    Warum machst Du eine While schleife mit demselben Inhalt in einer While schleife?
    Und warum das:
    $select = mysql_query("SELECT * FROM categories where parent_id='$array[parent_id]'");
    $setarray = mysql_fetch_array($select);

    das wiederholt nur die erste While schleife...


    Was hast Du genau vor?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ich möchte einfach nur eine Auflistung der Hauptkategorien und der jeweiligen Unterkategorien:

      Beispiel:

      Verein

      - HSV
      - Bayern
      - etc.

      Kommentar


      • #4
        Ok, wenn Du 2 Tabellen hast zB
        hauptkategorie(id, kategorie)
        und kategorien(id, hauptkategorie_ID, titel)
        dann mach sowas:

        SELECT a.kategorie, b.titel FROM hauptkategorie LEFT JOIN kategorien ON a.ID = b.hauptkategorie_ID

        und dann kannste das aus dem mysql_fetch_array auslesen...
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Ich hab eine Tabelle in der sind die Verknüpfungen enthalten - sprich es gibt X*die Hauptgruppen_id und dazu jeweils verschiedene Untergruppen_id

          Kommentar


          • #6
            poste mal alle Tabellen...
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              es ist nur eine Tabelle (categories) mit folgendem Inhalt:

              parent_id - int(5)
              categories_id - int(5)

              als Ergebnins möchte ich das unter der jeweilen parent_id die verschiendenen categories_id stehen.

              Also in etwa so:

              1
              --------
              34
              57
              89

              2
              -------
              12
              13
              89
              237
              466


              Bei meinem Code sieht es so aus:

              1
              --------
              34
              57
              89

              1
              --------
              34
              57
              89

              1
              --------
              34
              57
              89

              und dann folgt 5*

              2
              -------
              12
              13
              89
              237
              466

              etc.


              Sorry aber das macht mich wahnsinnig -

              Kommentar


              • #8
                Biene

                Wenn du dies in nur einer Tabelle machen möchtest, dürfen die Haupkategorien keine parent_id haben.

                Dein erster Select müßte dann in etwa heißen:

                SELECT * FROM categories WHERE parent_id='ROOT'

                wobei 'ROOT' irgend ein belieber Begriff sein kann, der nur symbolisiert, daß da außer der Wurzel nichts mehr im Baum ist.

                ROOT
                |
                |- Hauptkategorie 1 parent_id = "ROOT"
                | |
                | |- Unterkategorie 1
                |
                |- Hauptkategorie n parent_id = "ROOT"
                | |
                | |- Unterkategorie n1

                Mann kann es natürlich noch übertreiben und daraus eine Rekursion machen, wenig Code, viel Ergebniß

                Zuletzt geändert von germa5; 23.07.2002, 13:16.

                Kommentar

                Lädt...
                X