castor: mysql result verschachtelung

Hallo.

Ich habe eine Frage, bzw ein Problem.

Ich habe eine Tabelle A, die Kategorien verwaltet und eine Tabelle B, die die Daten beinhaltet.

DIe Ausgabe ist eigentlich keint Problem, auch nicht die Verknüpfung - aber hier würden sich immer die Daten aus der Kategorien-Tabelle wieder holen.
Bsp.
Kategorie1 - Datensatzx
Kategorie1 - Datensatzy
Kategorie2 - DatensatzZ

Ich bekomme nun die Ausgabe nicht so hin, dass sie wie folgt aussähe:
Katgorie 1
(alle Datensätze der Kategorie)
Datensatzx
Datensatzy

Kategorie 2
(alle Datensätze der Kategorie)
Datensatzz

Ich habe schon versucht die result - anweisungen zu verschachteln, aber dies hat auch nicht funktioniert.
Meine Vorgehensweise:

$result=mysql($db, "SELECT A.id, A.catname, B.title, B.text, B.kategorie, B.date FROM $tabelle AS B, $seminar_cat AS A WHERE B.kategorie=A.id ORDER BY B.date");
// DIe verknüpfung der beiden Tabellen... funktioniert soweit.

while(list($id, $catname) = mysql_fetch_row($result)) {
//hier soll er die Kategorien listen

echo  "$catname<br><br>";
//ausgabe der kategorien

while(list($title, $text, $kategorie, $date) = mysql_fetch_row($result)){
//die versachtelung 2, die aber nicht funktioniert...

echo "$title - $text";
//ausgabe der datensätze

}
}

Für eine Hilfe wäre ich sehr dankbar.

  1. Hallo Castor,

    $result=mysql($db, "SELECT A.id, A.catname, B.title, B.text, B.kategorie, B.date FROM $tabelle AS B, $seminar_cat AS A WHERE B.kategorie=A.id ORDER BY B.date");

    Ich würde machen: ... order by a.catname,b.date bzw. order by b.kategorie,b.date

    Hier würde ich machen
    $altcat='';

    while(list($id, $catname) = mysql_fetch_row($result)) {

    wäre vieleicht besser: while ($werte = mysql_fetch_array($result)) {

    anschließend
    $catname=$werte['catname'];
    if ($catname != $altcat) {
      $catname=$altcat

    //hier soll er die Kategorien listen

    echo  "$catname<br><br>";

    Folgendes fällt weg:

    //ausgabe der kategorien

    while(list($title, $text, $kategorie, $date) = mysql_fetch_row($result)){
    //die versachtelung 2, die aber nicht funktioniert...

    echo "$title - $text";
    //ausgabe der datensätze

    dafür kommt

    echo "$werte['title'] - $werte['text']";

    }
    }

    Gruß Ralf

    1. Hallo Ralf, erstmal Danke für die Hilfe.

      Der Abschnitt lautet jetzt wie folgt(habe deine Änderungen übernommen):

      $result=mysql($db, "SELECT A.id, A.catname, B.title, B.text, B.kategorie, B.date FROM $tabelle AS B, $seminar_cat AS A WHERE B.kategorie=A.id ORDER BY A.catname,B.date");

      $altcat='';
      while ($werte = mysql_fetch_array($result)) {
      $catname=$werte['catname'];
      if ($catname != $altcat) {
        $catname=$altcat

      echo "$catname<br><br>";

      echo "$werte['title'] - $werte['text']";

      }
      }

      Aber bekomme immer die Fehlermeldung:

      Parse error: parse error, unexpected T_ECHO

      habe auch was rumgespielt, aber bin leider zu keiner lösung gekommen.

      Vielen Dank schon mal im vorras.