CoverUnder
Mitglied
Hallo,
einmal mehr melde ich mich mit einer Schwierigkeit, bei der ich leider mal wieder nicht weiter komme.
Folgendes:
Ich habe eine MySQL-Abfrage und innerhalb dieser MySQL-Abfrage befinden sich weitere Abfragen. Vereinfacht gesagt frage ich in der äußeren/ersten Abfrage die ID ab und hole dann mittels der ID weitere Datensätze aus den inneren/weiteren Abfragen. Die inneren Tabellen enthalten meist mehrere Datensätze pro ID, die genaue Anzahl ist nicht bekannt.
Das ist sicher nicht die sauberste/schönste Variante, aber mit Join und Co. bin ich leider noch nicht so vertraut, arbeite aber daran
Nun folgendes Problem:
Die inneren Abfragen (sql2 und sql3) enthalten mehrere Datensätze, die ich auslesen möchte und anhand von .= zusammensetze, da mir so die HTML Ausgabe erleichtert wird.
Aber genau dieses .= macht mir jetzt leider auch Probleme, denn:
Ich möchte aus den inneren Abfragen ja immer nur die Datensätze von der aktuellen ID aus der äußeren/ersten Abfrage abfragen. ABER: Leider werden durch das .= auch die Ergebnisse der vorherigen IDs/Abfragen angehängt.
Sprich: Die Anzahl der Ergebnisse nimmt immer weiter zu.
Da kommt dann eine solche Ausgabe zustande:
Aussehen sollte es aber so:
Nun fragt sich, ob man diese String-Verkettung irgendwie auch wieder unterbrechen/abschalten kann? So dass nur die Ergebnisse aus einer Abfrage verkettet werden und die vorherigen Ergebnisse nicht auch noch angehängt werden?
Ich würde mich über Tipps und Hinweise sehr freuen!
Grüße,
CoverUnder
einmal mehr melde ich mich mit einer Schwierigkeit, bei der ich leider mal wieder nicht weiter komme.
Folgendes:
Ich habe eine MySQL-Abfrage und innerhalb dieser MySQL-Abfrage befinden sich weitere Abfragen. Vereinfacht gesagt frage ich in der äußeren/ersten Abfrage die ID ab und hole dann mittels der ID weitere Datensätze aus den inneren/weiteren Abfragen. Die inneren Tabellen enthalten meist mehrere Datensätze pro ID, die genaue Anzahl ist nicht bekannt.
PHP:
$sql = "SELECT id FROM tabelle1";
$res = mysql_db_query($mysqldb, $sql, $mysql);
while ($row = mysql_fetch_assoc($res)) {
$sql2 = "SELECT xx FROM tabelle2 WHERE id=id";
$res2 = mysql_db_query($mysqldb, $sql2, $mysql);
while ($row2 = mysql_fetch_assoc($res2)) {
}
$sql3 = "SELECT yy FROM tabelle3 WHERE id=id";
$res3 = mysql_db_query($mysqldb, $sql3, $mysql);
while ($row3 = mysql_fetch_assoc($res3)) {
}
}
Das ist sicher nicht die sauberste/schönste Variante, aber mit Join und Co. bin ich leider noch nicht so vertraut, arbeite aber daran
Nun folgendes Problem:
Die inneren Abfragen (sql2 und sql3) enthalten mehrere Datensätze, die ich auslesen möchte und anhand von .= zusammensetze, da mir so die HTML Ausgabe erleichtert wird.
Aber genau dieses .= macht mir jetzt leider auch Probleme, denn:
Ich möchte aus den inneren Abfragen ja immer nur die Datensätze von der aktuellen ID aus der äußeren/ersten Abfrage abfragen. ABER: Leider werden durch das .= auch die Ergebnisse der vorherigen IDs/Abfragen angehängt.
Sprich: Die Anzahl der Ergebnisse nimmt immer weiter zu.
Da kommt dann eine solche Ausgabe zustande:
Code:
ID 1
Datensätze zu ID 1
ID 2
Datensätze zu ID 1
Datensätze zu ID 2
ID 3
Datensätze zu ID 1
Datensätze zu ID 2
Datensätze zu ID 3
Aussehen sollte es aber so:
Code:
ID 1
Datensätze zu ID 1
ID 2
Datensätze zu ID 2
ID 3
Datensätze zu ID 3
Nun fragt sich, ob man diese String-Verkettung irgendwie auch wieder unterbrechen/abschalten kann? So dass nur die Ergebnisse aus einer Abfrage verkettet werden und die vorherigen Ergebnisse nicht auch noch angehängt werden?
Ich würde mich über Tipps und Hinweise sehr freuen!
Grüße,
CoverUnder