Logik-Problem mit foreach

Atalión

Mitglied
Hey Leute :)

Ich steh vor einem Logik-Problem, bei dem ich irgendwie den Wald vor lauter Bäumen nicht sehe. Nebenbei bemerkt Ich arbeite mit dem Woltlb Community Framework, aber das dürfte für das grundsätzliche Verständis kein Problem sein.

Hm ja, ich arbeite gerade an einer Serien-Datenbank. Ich habe jetzt eine MySQL-Tabelle, in der die Serie an sich gespeichert ist (mit Titel, Beschreibung etc.) und der wird auch automatisch eine ID zugeorndet. So, jetzt habe ich eine weitere Tabelle für einen Episodenguide. Pro Datensatz wird in dieser Tabelle eben Titel, Beschreibung etc. der Episode und dann die zugehörige Serien-ID gespeichert und auch eine Staffel zugewiesen (1 für Staffel 1, 2 für Staffel 2 etc).

So, bisher kann ich mit einer foreach-Schleife die einzelnen Episoden untereinander auslesen. Ich möchte die jetzt aber pro Staffel auflisten, sprich das es nach dem Schema

STAFFEL 1
Episode 1
Episode 2
..

STAFFEL 2
Episode 1
Episode 2
..

usw..

aufgelistet wird (und dass ich es auch so gliedern kann, also dass da tatsächlich STAFFEL 1, STAFFEL 2 etc. steht). Ist das so möglich? Oder müsste ich für die Staffeln dann nochmal eine extra Tabelle anlegen? Falls ja stellt sich mir die Frage, wie das ganze dann aussieht. Irgendwie komm ich immer mit den foreaches durcheinander.. *schäm*

LG
 
Letztendlich brauchst du zwei Anfragen an die Datenbank: eine, die die Serien abfragt, und eine zweite, welche die Episoden abfragt. Die Episoden müsstest du dann wie folgt in ein Array speichern um es leicht zu verwenden (ich greife einfach mal auf die Prepared-Statement-Klasse von MySQLi zurück):
PHP:
// Definiere die Variablen für Seriennummer, Titel, Beschreibung
$stmt->bind_result($sid, $title, $description);
while($stmt->fetch()) {
    // Eigentliches Speichern in Array
    $data[$sid][] = array('title' => $title, 'description' => $description);
}
Und dann kannst du dein Problem mit zwei verschachtelten FOREACH-Schleifen lösen:
PHP:
foreach($serie as $value) {
    
    echo $value['title'];
    // ...    

    foreach($data[$value['sid']] as $value2) {
        
        echo $value2['title'];
        // ...
        
    }
}
 
Zurück