Ich versuche, Spielpläne für eine Sportwebsite zu generieren. Ich habe eine Tabelle namens Mitglieder, bei der relevante Spalten die member_id und league_id sind. Die league_id wird von einem Formular auf der vorherigen Seite als Variable $leagueid übergeben.
Ich ziehe alle Mitglieds-IDs heraus, die sich auf diese Ligaland ID beziehen...
$result = mysql_query("SELECT member_id FROM Members WHERE league_id = '$leagueid'")
Jetzt muss ich Spielpläne für all diese Member IDs generieren und diese Daten dann in die MySQL-Tabelle 'Fixtures' einfügen. Jeder Datensatz in dieser Tabelle muss enthalten:
Spieler1 - member_id des ersten Spielers
Spieler2 - member_id des zweiten Spielers
Woche - Ganzzahl, die anzeigt, in welcher Woche das Spiel stattfinden wird
league_id
Es gibt jedoch auch einige besondere Bedingungen, die berücksichtigt werden müssen.
-
Alle 3. Woche muss frei bleiben (d.h. Wochen 3,6,9,12 usw.). Auf diesen Wochen dürfen keine Spiele angesetzt werden
-
Es muss eine Option geben (die ausgewählt und von einem Formular auf der vorherigen Seite als Kontrollkästchenvariable namens $double übergeben wird), die die Spiele verdoppelt. Das bedeutet, dass nachdem eine komplette Runde von Spielplänen generiert wurde, Sie die generierte Liste nehmen müssen, IDs für Spieler 1 und 2 austauschen und sie alle duplizieren müssen. Eine Runde von Spielplänen könnte also so aussehen....
Woche 1
1 vs 2
3 vs 4
Woche 2
1 vs 3
2 vs 4
Woche 3
1 vs 4
2 vs 3
Dann würden Sie die IDs austauschen und einen weiteren Satz hinzufügen...
Woche 4
2 vs 1
4 vs 3
Woche 5
3 vs 1
4 vs 2
Woche 6
4 vs 1
3 vs 2
Was ich suche, ist ein Code, der all diese Spielpläne generiert und dabei alle von mir aufgelisteten speziellen Bedingungen berücksichtigt.
Ich weiß, dass all dies in PHP möglich ist, aber ich denke auch, dass ich es mit einer einzigen SQL-Abfrage machen kann, was vielleicht viel sauberer wäre. Kann mir jemand helfen?? Vielen Dank!!
P.S. Ich weiß, dass ich mysql verwende und nicht mysqli. Ich versuche derzeit auf mysqli umzusteigen, habe aber einige Probleme, die ich in einer separaten Frage gepostet habe, auf die ich noch keine richtige Antwort erhalten habe.