Hallo,
die Funktionen in dem Script sind beschriftet. Ich habe mit Hilfe eines anderen Forum die while Schleife so umgebaut, dass statt Mannschaften einer Spalte, Mannschaften einer bestimmten Zeile aus der Datenbank ausgelesen werden. Ich will, aber gerne in den Spielplangenerator Uhrzeit der Spiele einbauen(unten in Code zwischen zwei "U"" Zeit und $time" hat aber im Moment keine Funktion). Die Startzeit soll in dem Script direkt angegeben werden(wenn es fertig sein wird, wird es aus einem Formular gesendet), Zeit des Spiels 10 Minuten, Pause zwischen der SPielen zwei Minuten. Fuer jede Hilfe, oder Tipps bin ich dankbar.
Viele Gruesse
PHP-Code:
<?php
/*
** Spielplan-Generator / Liga-Planer
**
**
**
** Erweitert von Christian <linker@toter-link.de>
**
** =================================
** Spielmodus: "Jeder gegen Jeden", Hin- und R�ckspiele,
** mit spielt�glichem Wechsel zwischen Heim- und Gastspiel.
** Das Programm ben�tigt ein Array ($teams), welches die Teilnehmer enth�lt.
**
** Es wird ein Array $plan erzeugt, das alle Hin- und R�ckspiele enth�lt.
** Hierbei werden alle Spielpaarungen fortlaufend durchnummeriert.
** Das Array $plan halt folgenden Aufbau:
** $plan[$spieltag][$spielnummer]['H'|'G' = Heim- oder Gast-Team]
*/
include "p423connect.inc.php";
// Teams aus DB holen
$sql = 'SELECT
m1,m2,m3,m4,m5,m6,m7,m8
FROM
spielplan WHERE ID=1';
$res = mysql_query($sql);
$teams = array();
while (($row = mysql_fetch_assoc($res)) !== false) {
$teams[] = $row['m1'];
$teams[] = $row['m2'];
$teams[] = $row['m3'];
$teams[] = $row['m4'];
$teams[] = $row['m5'];
$teams[] = $row['m6'];
$teams[] = $row['m7'];
$teams[] = $row['m8'];
}
print_r($teams);// hier werden die acht teams ausgegeben
// Testen ob die Anzahl der Teams gerade ist
// wenn nicht das Team "frei" hinzuf�gen.
if(count($teams) % 2 ){
array_push($teams , '[FREI]');
}
$anz = count($teams); // Anzahl der Teams im Array $teams
$paare = $anz/2; // Anzahl der m�glichen Spielpaare
$tage = $anz-1; // Anzahl der Spieltage pro Runde
$spiele = $paare*$tage; // Anzahl der Spiele pro Hin-/R�ck-Runde
$plan = array(); // Array f�r den kompletten Spielplan
$xpos = $anz-1; // h�chster Key im Array $teams
$tag = 0; // Z�hler f�r Spieltag
$spnr = 0; // Z�hler f�r Spielnummer
$sppaar = 0; // Z�hler f�r Spielpaar
$i = 0; // Schleifenz�hler
// ================================================================================
for ($tag=1; $tag<$anz; $tag++) {
array_splice ($teams, 1, 1, array(array_pop($teams),$teams[1]));
for ($sppaar=0; $sppaar<$paare; $sppaar++) {
$spnr++;
// wechseln zwischen G und H -Spiel:
if (($spnr%$anz!=1) and ($sppaar%2==0)) {
$hteam = $teams[$sppaar];
$gteam = $teams[$xpos-$sppaar];
} else {
$gteam = $teams[$sppaar];
$hteam = $teams[$xpos-$sppaar];
}
$plan[$tag][$spnr]["G"] = $gteam; // f�r Hin-Runde
$plan[$tag][$spnr]["H"] = $hteam; // f�r Hin-Runde
//$plan[$tag+$tage][$spnr+$spiele]["G"] = $hteam; // f�r R�ck-Runde
// $plan[$tag+$tage][$spnr+$spiele]["H"] = $gteam; // f�r R�ck-Runde
}
}
ksort($plan); /* nach Spieltagen sortieren */
// ================================================================================
/* Ausgabe des gesamten $plan */
$rueck = count($plan)/2 ;
echo "Spielplan: <br>";
echo "********* Hin-Runde *********<br><br>\n" ;
foreach($plan as $spieltag => $v1) {
foreach($v1 as $spielnummer => $v2) {
echo "SpTag: "; echo $spieltag;
[U] echo "Zeit: "; echo $time; [/U]
echo ": SpNr: "; echo $spielnummer;
echo ": "; echo $plan[$spieltag][$spielnummer]['H'];
echo " - "; echo $plan[$spieltag][$spielnummer]['G'];
/* Hier k�nnte jetzt ein "INSERT INTO TABLE ..." mit den vg. '$values' erfolgen. */
echo "<br>";
}
//if ($spieltag == $rueck){
// echo "<br>********* R�ck-Runde *********<br>\n" ;
// }
// echo"<br>";
}
echo "**********************************************<br>Ende der Liste <br>";
?>