stand berekenen
Ik heb dit script gebruikt op de site die ik voor de voetbal bijhoudt. Omdat ik niet de enige ben met rechten heb ik het zo gedaan dat een bepaalde wedstrijd maar 1 keer per seizoen voor kan komen. Ik had het eerst zo dat wanneer je een uitslag invoerde, dat de stand werdt berekend, maar wanneer je dan een uitslag aan zou passen, dan klopte de hele stand niet meer. (is ook wel wat voor te maken, maar dit is denk ik handiger) Op de manier zoals het nu is is het gemakkelijk om een team bijvoorbeeld uit de competitie te halen (indien nodig natuurlijk :P). Ik weet niet wie er nog meer zelf een sportsite met een eigen lijst uitslagen en een eigen stand (komt zo nu en dan wel eens voor dat die stand actueler is dan op knvb :P) bijhouden, maar ik wil het wel met jullie delen hoe dat gaat. Deze pagina kan je includen in de pagina waarin je de stand weergeeft, dan wordt die elke keer wanneer iemand kijkt ververst. Je kan hem ook ergens neerzetten en na het vullen van een paar nieuwe uitslagen even openen. CREATE TABLE `wedstrijden` ( `id` tinyint(4) NOT NULL auto_increment, `thuis` varchar(15) NOT NULL default '', `uit` varchar(15) NOT NULL default '', `doelthuis` tinyint(2) default NULL, `doeluit` tinyint(2) default NULL, `datum` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`) ) ; CREATE TABLE `stand` ( `id` smallint(6) NOT NULL auto_increment, `team` varchar(15) NOT NULL default '', `punten` tinyint(4) NOT NULL default '0', `wedstrijden` tinyint(2) NOT NULL default '0', `winst` tinyint(2) NOT NULL default '0', `gelijk` tinyint(2) NOT NULL default '0', `verlies` tinyint(2) NOT NULL default '0', `voor` tinyint(3) NOT NULL default '0', `tegen` tinyint(3) NOT NULL default '0', PRIMARY KEY (`id`) ) ; Je kan als je dat wilt, (ik heb het zo gedaan omdat het dan gemakkelijker is de teamnaam in de pagina waar de stand in staat weer te geven) ipv WHERE team= werken met WHERE id is, moet je alleen ff de variabele ook aanpassen zodat die variabele de id geeft die bij het team hoort die in de tabel met de stand staat.
<?php
//eerst verbinding met de database maken staat in verbinden.php
include("verbinden.php");
// zorgen dat voor de nieuwe berekening alles weer op 0 wordt gezet.
$thuis_SQL_update="UPDATE stand SET wedstrijden = 0, punten = 0, voor = 0, tegen = 0, winst = 0 gelijk = 0, verlies = 0";
$thuis_update=mysql_query($thuis_SQL_update);
// Alle wedstrijden selecteren waar nog geen stand is ingevoerd
$uitslagquery = "SELECT * FROM wedstrijden WHERE thuisdoel != NULL";
$uitslaguitvoer = mysql_query($uitslagquery);
while ($uitslag=mysql_fetch_array($uitslaguitvoer)){
// vars weer op 0 zetten
$puntenthuis=0;
$puntenuit=0;
$thuiswinst=0;
$uitwinst=0;
$gelijk=0;
// wanneer thuis wint volgende punten toekennen
if ($uitslag['doelthuis'] > $uitslag['doeluit']){
$puntenthuis = 3;
$puntenuit = 0;
$thuiswinst = 1;
$uitwinst = 0;
}
// wanneer gelijkspel volgende punsten toekennen
else if ($uitslag['doelthuis'] == $uitslag['doeluit']){
$puntenthuis = 1;
$puntenuit = 1;
$gelijk = 1;
}
// wanneer thuis verliest volgende punten toekennen
else if ($uitslag['doelthuis'] < $uitslag['doeluit']){
$puntenthuis = 0;
$puntenuit = 3;
$thuiswinst = 0;
$uitwinst = 1;
}
// paar vars vullen
$thuisdoel = $uitslag['doelthuis'];
$uitdoel = $uitslag['doeluit'];
$thuisteam = $uitslag['thuis'];
$uitteam = $uitslag['uit'];
//tabel weer vullen
$thuis_SQL_update="UPDATE stand SET wedstrijden = wedstrijden+1,
punten = punten+{$puntenthuis}, voor = voor+{$thuisdoel}, tegen = tegen+{$uitdoel}, winst = winst+{$thuiswinst}, gelijk = gelijk+{$gelijk},verlies = verlies+{$uitwinst} WHERE team='{$thuisteam}'";
$uit_SQL_update="UPDATE stand SET wedstrijden = wedstrijden+1, punten = punten+{$puntenuit}, voor = voor+{$uitdoel}, tegen = tegen+{$thuisdoel}, winst = winst+{$uitwinst}, gelijk = gelijk+{$gelijk}, verlies = verlies+{$thuiswinst} WHERE team='{$uitteam}'";
$thuis_update=mysql_query($thuis_SQL_update);
$uit_update=mysql_query($uit_SQL_update);
}
?>
Reacties
0