for-schleife als Kombo?

K@TooN

Grünschnabel
Grüßt Euch,

ich habe eine Tabelle mit Artikeldaten angelegt. Zum Beispiel (Id hab ich mal weggelassen)

Kategorie . Artikelname . Preis

kategorie1 | artikel1 | preis1
kategorie2 | artikel2 | preis2
kategorie2 | artikel3 | preis3
kategorie1 | artikel4 | preis4


Zur ausgabe habe ich 2 for-Schleifen benutzt::

PHP:
$abfrage_kategorie = MYSQL_QUERY("SELECT * FROM tabelle ORDER BY Kategorie ASC");
$num_kategorie = MYSQL_NUM_ROWS($abfrage_kategorie);

for($k=0;$k<$num_kategorie;$k++) 
{
   $Kategorie = MYSQL_RESULT($abfrage_kategorie,$k,"Kategorie");
   print($Kategorie.": ");

   $abfrage_artikel = MYSQL_QUERY("SELECT Artikel FROM tabelle WHERE Kategorie LIKE '$Kategorie' ORDER BY Artikel ASC");
   $num_artikel = MYSQL_NUM_ROWS($abfrage_artikel);

   for($a=0;$a<$num_artikel;$a++) 
   {
      $Artikel = MYSQL_RESULT($abfrage_artikel, $a, "Artikel");
      print($Artikel);
   }
   print("<br>");
}

Daraufhin erhalte ich die Ausgabe
Code:
kategorie1: artikel1
kategorie1: artikel4
kategorie2: artikel2
kategorie2: artikel3


Ich möchte aber eigentlich dieses hier:

Code:
kategorie1: artikel1
            artikel4
kategorie2: artikel2
            artikel3


Wie schaffe ich es, dass ich bei der ersten for-Schleife mehrfache Einträge nur einmal aufliste?


MfG

K@TooN
 
Das "Problem" liegt in deiner MySQL-Query... Probier mal folgende:
SQL:
SELECT Artikel FROM tabelle WHERE Kategorie LIKE '$Kategorie' GROPU BY Kategorie ORDER BY Artikel ASC
 
Okay, danke Jungs. Mit folgendem, korrigierten Code habe ich meine Vorstellung erfüllt:

PHP:
$abfrage_kategorie = MYSQL_QUERY("SELECT Kategorie FROM tabelle GROUP BY Kategorie");
      $num_kategorie = MYSQL_NUM_ROWS($abfrage_kategorie);
      for($k=0;$k<$num_kategorie;$k++) 
      {
         $Kategorie = MYSQL_RESULT($abfrage_kategorie,$k,"Kategorie");
         print("<b>$Kategorie</b><br>");
         
         $abfrage_artikel = MYSQL_QUERY("SELECT Artikel FROM tabelle WHERE Kategorie LIKE '$Kategorie' ORDER BY Artikel ASC");
         $num_artikel = MYSQL_NUM_ROWS($abfrage_artikel);
         for($a=0;$a<$num_artikel;$a++)
         {
            $Artikel = MYSQL_RESULT($abfrage_artikel,$a,"Artikel");
            print("$Artikel<br>");
         }
         print("<br>");
      }


Ausgabe:
Code:
kategorie1
artikel1
artikel4

kategorie2
artikel2
artikel3

Danke für die Blitz-Hilfe ;)
 
Zurück