Andre: MySQL: Resultlist in Array und im Wechsel ausgeben...

Hallo zusammen,

ich möchte Daten zweier DB-Tabellen in eine Tabelle ausgeben. In der einen stehen die Produkte und der Preis, in der anderen die Kategorie. Der Aufbau der Html-Tabelle soll so sein:

KATEGORIE_1
...KAT1_Produkt1...KAT1_Preis1
...usw...

KATEGORIE_2
...KAT2_Produkt1...KAT2_Preis1
...usw...

KATEGORIE_3
...KAT3_Produkt1...KAT3_Preis1
...usw...

Ich wollte das zuerst mit einer verschachtelten while-Schleife lösen bei der sich ein zähler immer um ein hoch zaehlt. wenn ich nun aber z.B. die 2. Kategorie lösche (soll möglich sein), dann bleibt die Schleife stehen und macht nix mehr. Mit einer for-schleife gibt wird die erste Kategorie geschieben und dann alle Produkte hinterher...
Ich denke das es mit einer verschachtelten for-schleife gehen sollte, doch leider hat es bisher noch nicht hingehauen.

Hat jemand eine Idee wie man halt bequem sagen könnte: lese mir KAT_1 dann alle Produkte von KAT_1, dann nächste Kategorie mit den jew. Produkten?

Bin für alle Anregungen dankbar!

Gruss Andre

  1. Hat jemand eine Idee wie man halt bequem sagen könnte: lese mir KAT_1 dann alle Produkte von KAT_1, dann nächste Kategorie mit den jew. Produkten?

    Zum Beispiel: Sortiere in der Datenbankabfrage nach der Kategorie (und dann nach was-immer-Du-haben-willst). Beim Auslesen prüfst Du, ob die Kategorie des aktuellen Datensatzes noch die gleiche ist wie beim vorherigen; wenn nicht, beginnst Du einen neuen Kategorienabsatz:

    $alt_k=null;
      while ($daten=mysql_fetch_assoc(..))
       {
        if ($alt_k!==$daten["kategorie"])
          {
           echo $daten["kategorie"];
           $alt_k=$daten["kategorie"];
          };
        echo $daten["artikelblabla"];
       };

    Du könntest aber auch beim Auslesen erstmal alles in ein Feld schreiben, etwa so:

    while ($artikel=mysql_fetch_assoc(..))
        $daten[$artikel["kategorie"][]=$artikel;

    In einer verschachtelten foreach-Schleife gibst Du dann in der äußeren die Kategorie aus und in der inneren den Artikel:

    foreach ($daten as $kategorie=>$artikel)
       {
        echo $kategorie;
        foreach ($artikel as $a)
         {
          echo $a;
         };
       };

    Gruß,
      soenk.e