Ger van Steenderen zijn reactive hierop was :
Ik denk dat je beter eerst de vraag kunt stellen hoe je gewoon via één query de stand kan genereren vanuit de uitslagen.
Nu ga je een paar honderd queries uitvoeren, en dan een tabel legen en updaten. Wat als er gelijktijdige requests plaats vinden?
Is het mogelijk a.d.h.v. mijn tabellen een query te schrijven waarmee je in 1 query het klassement berekend i.p.v. enkele honderden.
Wie kan mij hiermee helpen?
TABLE `kalender` (
`Datum` text NOT NULL,
`Dag` varchar(10) NOT NULL default '',
`Uur` varchar(5) NOT NULL default '',
`Reeks` varchar(7) NOT NULL default '',
`Thuisploeg` varchar(25) NOT NULL default '',
`Bezoekers` varchar(25) NOT NULL default '',
`Wedstijd` varchar(5) NOT NULL default '',
`Dthuis` char(2) NOT NULL default '',
`Dbezoek` char(2) NOT NULL default '',
`ID` int(4) NOT NULL default '0'
) ENGINE=MyISAM;
TABLE `klassement` (
`Ploeg` varchar(30) NOT NULL default '',
`Gesp` int(11) NOT NULL default '0',
`Gew` int(11) NOT NULL default '0',
`Verl` int(11) NOT NULL default '0',
`Gel` int(11) NOT NULL default '0',
`Dvoor` int(11) NOT NULL default '0',
`Dtegen` int(11) NOT NULL default '0',
`Punten` int(11) NOT NULL default '0'
) ENGINE=MyISAM;
<?php
if(!isset($_POST["select"])){$_POST["select"] ="R1";}
mysql_select_db("$db",$connectie);
//klassement leegmaken
$leeg="delete from klassement";
mysql_query($leeg, $connectie);
//klassement opvullen met de verschillende thuisploegen uit de kalender
if(!isset($_POST["select"])){$_POST["select"] ="";}
$lezen="select distinct thuisploeg from kalender where Reeks like '" .$_POST["select"]. "'";
$rst=mysql_query($lezen, $connectie);
$aantal_lijnen=mysql_num_rows($rst);
for($i=0;$i<$aantal_lijnen;$i++) {
$row=mysql_fetch_row($rst);
$vullen="insert into klassement(ploeg) values ('".$row[0]."')";
mysql_query($vullen,$connectie);
}
//klassement berekenen
$sel="select * from kalender where Reeks like '" .$_POST["select"]. "'";
$selrst=mysql_query($sel, $connectie);
$sel_lijnen=mysql_num_rows($selrst);
for($i=0;$i<$sel_lijnen;$i++) {
$rij=mysql_fetch_row($selrst);
//thuisploeg
if (($rij[7]!="") and ($rij[8]!="")){
$sql="update klassement set gesp=gesp+1, Dvoor=Dvoor + ".$rij[7].", Dtegen=Dtegen + ".$rij[8]." where ploeg='".$rij[4]."'";
mysql_query($sql, $connectie);
if ($rij[7]>$rij[8]){
$sql2="update klassement set gew=gew+1, punten=punten+3 where ploeg='".$rij[4]."'";}
else if ($rij[7]<$rij[8]){
$sql2="update klassement set verl=verl+1 where ploeg='".$rij[4]."'";}
else{
$sql2="update klassement set gel=gel+1, punten=punten+1 where ploeg='".$rij[4]."'";}
mysql_query($sql2, $connectie);
}
//bezoekers
if (($rij[7]!="") and ($rij[8]!="")){
$sql="update klassement set gesp=gesp+1, Dvoor=Dvoor + ".$rij[8].", Dtegen=Dtegen + ".$rij[7]." where ploeg='".$rij[5]."'";
mysql_query($sql, $connectie);
if ($rij[8]>$rij[7]){
$sql2="update klassement set gew=gew+1, punten=punten+3 where ploeg='".$rij[5]."'";}
else if ($rij[7]>$rij[8]){
$sql2="update klassement set verl=verl+1 where ploeg='".$rij[5]."'";}
else{
$sql2="update klassement set gel=gel+1, punten=punten+1 where ploeg='".$rij[5]."'";}
mysql_query($sql2, $connectie);
}
}
//klassement
$klas="select * from klassement order by punten desc, gew desc, dvoor-dtegen desc, dvoor desc";
$klasrst=mysql_query($klas, $connectie);
$klas_lijnen=mysql_num_rows($klasrst);
print("<table border = 0 width=600 cellspacing='0' align='center' style='font-size=14;'><tr align='center' bgcolor='#CCCCCC'><td><font color='#000000'>Ploeg</td>");
print("<td width=60><font color='#000000'>Gesp</td>");
print("<td width=60><font color='#000000'>Gew</td>");
print("<td width=60><font color='#000000'>Gel</td>");
print("<td width=60><font color='#000000'>Verl</td>");
print("<td width=60><font color='#000000'>Dvoor</td>");
print("<td width=60><font color='#000000'>Dtegen</td>");
print("<td width=60><font color='#000000'>Punten</td></tr>");
for($i=0;$i<$klas_lijnen;$i++) {
$row=mysql_fetch_row($klasrst);
echo "<tr align='center'><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[4]</td><td>$row[3]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td></tr>";
}
print("</table>");
?>