mysql result verschachtelung
castor
- php
0 Ralf Walther0 castor
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.
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
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.