Hi Leute, ich brauch mal wieder euer Schwarmwissen. Es geht darum für eine Liga ein Spielplan zu erstellen, das ganze im Round Robin, sprich jeder einmal gegen jeden. Soweit funktioniert das auch (Außer das er mir bei einem Spieltag eine Partie Doppelt angezeigt hat.) Nur erstellt er mir nur 1 Runde, ich bräuchte allerdings den Code so, das es auch nach Beendigung eine Rückrunde gibt. Gleiche Reihenfolge der Paarung nur eben umgedreht statt Spieler1:Spieler2 sollte dann Spiler2 gegen Spieler1 spielen. So sieht das ganze dann in der Ausgabe bisher aus :
Ich habe das nicht selber geschrieben, das war ein Freund von mir, leider redet er im Moment nicht mehr mit mir weil ich mit der Darstellung des Kalenders nicht zufrieden bin, und es lieber mit Javascript lösen würde wie hier , da ich es Übersichtlicher finde. als wenn man ewig scrollen muss um zum letzten Spieltag zu gelangen.
Ich habe das nicht selber geschrieben, das war ein Freund von mir, leider redet er im Moment nicht mehr mit mir weil ich mit der Darstellung des Kalenders nicht zufrieden bin, und es lieber mit Javascript lösen würde wie hier , da ich es Übersichtlicher finde. als wenn man ewig scrollen muss um zum letzten Spieltag zu gelangen.
PHP:
<?php
session_start();
if(!isset($_SESSION["email"])){
header("Location: ../index.php");
exit;
}
require("./asset/mysql.php");
$player = $mysql->prepare("SELECT userid FROM user");
$player->execute();
$manschaften= $player->rowCount();
foreach ($player as $player) {
$spieler[] = $player['userid'];
}
$spieltage = (($manschaften % 2) == 0) ? ($manschaften - 1) : $manschaften;
$i = $j = $a = $b = $tag = 0;
for ($i = 1; $i <= $spieltage; $i++) {
$tag++; $a=1; $b=$i;
for ($j = 1; $j <=$spieltage; $j++) {
if ($a < $b) {
$spieltag[$a][$b] = $tag;
}
$a++;$b--;
if ($b < 1) {
$b = $spieltage;
}
}
}
if ($spieltage < $manschaften) {
for ($i = 1;$i < $manschaften;$i++) {
$spieltag[$i][$j] = ($i==1?1:$spieltag[$i-1][$i]+1);
}
}
for ($i=1;$i<=$manschaften;$i++) {
for ($j=1;$j<$i;$j++) {
$spieltag[$i][$j]=$spieltag[$j][$i]+$spieltage;
}
}
foreach ($spieltag as $i=>$array) {
foreach ($array as $j=>$spieltag) {
$spielplan[$spieltag][] = array($i,$j);
}
}
ksort($spielplan);
// Season Timestamp holen
require("./asset/mysql.php");
$timestamp = $mysql->prepare("SELECT season, datum_start FROM season WHERE aktiv=1");
$timestamp->execute();
foreach ($timestamp as $timestamp) {
$season = $timestamp['season'];
$timestamp = $timestamp['datum_start'];
}
// Kontrolle ob Spiele bereits erstellt wurden
require("./asset/mysql.php");
$control = $mysql->prepare("SELECT season FROM spielplan WHERE season=:season");
$control->bindParam(":season", $season);
$control->execute();
$count = $control->rowCount();
if ($count === 0) {
// eine Woche abziehen damit diese in der Schleife wieder hinzugefügt wird.
$timestamp =mktime(0,0,0, date("m",$timestamp),date("d",$timestamp)-7,date("Y",$timestamp));
for($h=1; $h<=$spieltage; $h++) {
$timestamp =mktime(0,0,0, date("m",$timestamp),date("d",$timestamp)+7,date("Y",$timestamp));
for($g=0; $g<=7; $g++){
$spieler1 = $spieler[$spielplan[$h][$g][0]-1];
$spieler2 = $spieler[$spielplan[$h][$g][1]-1];
require("./asset/mysql.php");
$termin = $mysql->prepare("INSERT INTO spielplan (datum_start, datum_ende, spieler1, spieler2, season) VALUES (:datum_start, :datum_ende, :spieler1, :spieler2, :season)");
$termin->bindParam(":datum_start", $timestamp);
$termin->bindParam(":datum_ende", $timestamp);
$termin->bindParam(":spieler1", $spieler1);
$termin->bindParam(":spieler2", $spieler2);
$termin->bindParam(":season", $season);
$termin->execute();
$termin=NULL;
require("./asset/mysql.php");
$game_erstellen = $mysql->prepare("INSERT INTO eingaben (spieler1, spieler2, season) VALUES (:spieler1, :spieler2, :season)");
$game_erstellen->bindParam(":spieler1", $spieler1);
$game_erstellen->bindParam(":spieler2", $spieler2);
$game_erstellen->bindParam(":season", $season);
$game_erstellen->execute();
}
}
echo "<div class='info'>die Spiele wurden erstellt.</div><br><br>";
} else {
echo "<div class='fehler'>die Spiele wurden bereits erstellt.</div><br><br>";
}
?>
Zuletzt bearbeitet: