Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<?php
include("connect.inc.php");
/**
* Funktion um den Cach-Wert eines Matches zu generieren
* @param $hteam String Name des Heimteams
* @param $ateam String Name des Auswertsteams
* @return String Cach-Wert team###team
*/
function createMatchCachEntry($hteam,$ateam){
return MIN($hteam,$ateam).'###'.MAX($ateam,$hteam);
}
//Settings
$saisonid = 1;
$ligaid = 1;
$anzSpielTage = 7;
$anzSpielePerTag = 4;
//Array mit allen Teams erstellen
$sql = "select * from team where ligaid = {$ligaid}";
$result = mysql_query($sql);
while($team = mysql_fetch_array($result)){
$teams[] = $team['vereinsname'];
}
//Cach für alle Matches, damit kein Match 2 mal vorkommt
$cachMatches = array();
//Jeden Spieltag durchgehen
for($spieltag = 1; $spieltag <= $anzSpielTage; $spieltag++){
//Teams neu mischen
shuffle($teams);
//Eine Kopie der Teams anlegen (array_shift() nimmt jeweils ein Eintrag aus dem Array heraus,
//ergo die Kopie wird immer kleiner
$teamsCopy = $teams;
//$anzSpielePerTag oder weniger Spiele (wenn zu wenig Manschaften vorhanden sind) aussuchen
for($i=0; $i < min($anzSpielePerTag, floor(count($teams)/2)); $i++){
//Schleife ohne Bedinung starten
do{
$hteam = array_shift($teamsCopy);
$ateam = array_shift($teamsCopy);
//Falls der Match bereits im Cach ist...
if(in_array(createMatchCachEntry($hteam,$ateam), $cachMatches)){
//.. die 2 Teams wieder zurückgeben und alles kräftig schütteln
array_push($teamsCopy, $hteam, $ateam);
shuffle($teams);
}else{
//Wenn der Match noch nicht im Cach ist
//Schleife verlassen
break;
}
} while(0);
//Den Match fürs SQL vorbereiten
$matchSqls[] = "($spieltag,$saisonid,$ligaid,'{$hteam}','{$ateam}')";
//Den Match in den Cach laden
$cachMatches[] = createMatchCachEntry($hteam,$ateam);
}
}
//Die Matches mit einem einzigen DB-Zugriff eintragen
$sql = "INSERT INTO spieltage (spieltag,saisonid,ligaid,hteam,ateam) VALUES ".implode(',', $matchSqls);
mysql_query($sql) or die(mysql_error());
//Array mit allen Teams erstellen
$sql = "select * from team where ligaid = {$ligaid}";
$result = mysql_query($sql);
while($team = mysql_fetch_array($result)){
$teams[] = $team['vereinsname'];
}
/**
* Funktion um den Cach-Wert eines Matches zu generieren
* @param $hteam String Name des Heimteams
* @param $ateam String Name des Auswertsteams
* @return String Cach-Wert team###team
*/
function createMatchCachEntry($team1,$team2){
return MIN($team1,$team2).'###'.MAX($team1,$team2);
}
//alle möglichen Matches definieren
$cachMatches = array();
$matches = array();
foreach($teams as $team1){
foreach($teams as $team2){
//Prüfen dass die Manschaft nicht gegen sich selber spielt und dass der Match noch nicht exisitiert
if($team1 != $team2 && !in_array(createMatchCachEntry($team1,$team2), $cachMatches)){
$cachMatches[] = createMatchCachEntry($team1,$team2);
$matches[] = array($team1, $team2);
}
}
}
//Jeden Spieltag durchgehen
for($spieltag = 1; $spieltag <= $anzSpielTage; $spieltag++){
//Die Matchs mischen
shuffle($matches);
//Anazahl Spiele pro Tag oder Anzahl üpbrige Matches durchgehen
for($i=0; $i < min($anzSpielePerTag, count($matches)); $i++){
//Den obersten Match aus der Leiste nehmen und aus der Liste entfernen
$match = array_shift($matches);
//Mischen wer die Heimmanschaft ist
shuffle($match);
//SQL-Insert-Teil zusammensetzen
$matchSqls[] = "('{$spieltag}','{$saisonid}','{$ligaid}','{$match[0]}','{$match[1]}')";
}
if(count($matches)==0){ break; }
}
//Die Matches mit einem einzigen DB-Zugriff eintragen
$sql = "INSERT INTO spieltage (spieltag,saisonid,ligaid,hteam,ateam) VALUES ".implode(',', $matchSqls);
mysql_query($sql);