Hallo dedlfix,
danke für Deine Antwort. Und warum nicht immer Gruppenwechseltechnik? (Danke für den Begriff, den kannte ich nicht, obwohl ich die Technik schon oft angewendet hatte)
Tabelle marke
+----+-------+
| id | name |
+----+-------+
| 1 | Audi |
| 2 | VW |
| 3 | Skoda |
| 4 | Seat |
+----+-------+
Tabelle modell
+----+---------+----------+
| id | name | marke_id |
+----+---------+----------+
| 1 | A2 | 1 |
| 2 | A4 | 1 |
| 3 | A6 | 1 |
| 4 | Golf | 2 |
| 5 | Sharan | 2 |
| 6 | Touareg | 2 |
| 7 | Octavia | 3 |
| 8 | Fabia | 3 |
| 9 | Yeti | 3 |
| 10 | Leon | 4 |
| 11 | Ibiza | 4 |
+----+---------+----------+
SELECT
ma.name AS marke_name,
mo.name AS modell_name
FROM marke ma
INNER JOIN modell mo
ON ma.id = mo.marke_id
ORDER BY ma.name, mo.name
+------------+-------------+
| marke_name | modell_name |
+------------+-------------+
| Audi | A2 |
| Audi | A4 |
| Audi | A6 |
| Seat | Ibiza |
| Seat | Leon |
| Skoda | Fabia |
| Skoda | Octavia |
| Skoda | Yeti |
| VW | Golf |
| VW | Sharan |
| VW | Touareg |
+------------+-------------+
Nun wird die Ausgabe mittels Gruppenbruch in eine lesbar gegliederte Form gebracht.
$last_entry = null;
while ($row = $result->fetch_object()) {
if ($last_entry != $row->marke_name) {
echo $row->marke_name.'<br>';
$last_entry = $row->marke_name;
}
echo '- '.$row->modell_name.'<br>';
}
Ausgabe:
Audi
- A2
- A4
- A6
Seat
- Ibiza
- Leon
Skoda
- Fabia
- Octavia
- Yeti
VW
- Golf
- Sharan
- Touareg
Quelle: https://php-de.github.io/jumpto/gruppenbruch/
Pit