Ik ben net begonnen met een cursus PHP en MySQL professional, echter zit ik met een script probleem:
De opdracht:
Bezoekers van de site zien de actuele stand in de poule, de uitslagen van alle gespeelde wedstrijden en de nog te spelen wedstrijden. De poule moet worden gesorteerd met het team met de meeste punten bovenaan. Als dat gelijk is, moet het team met het beste doelsaldo bovenaan worden gezet. De wedstrijden moeten op basis van gespeelde datums worden gesorteerd met de oudste bovenaan.
Dit betekent dat de stand boven aan moet staan, daaronder de uitslagen en daar weer onder de te spelen wedstrijden.
Probleem, het lukt mij niet om de uitslagen en de nog te spelen wedstrijden te verdelen in 2 groepen:
Mijn script (voor de website, overige pagina's niet inbegrepen):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Inzendopgave 051R5</title>
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<?php
//Includeren van database connectie en functies
include "db_connect.php";
include "functions.php";
//Starten van de sessie
session_start();
$message="";
$matchtabelCaption = "Competitieschema";
$matchtabelCaption2 = "Uitslagen";
$telteams = 0;
$equalstandings = 0;
$pouletabelmsg = "";
$error = false;
//Ophalen van matchdata en teamdata
$matchdataquery = "SELECT * FROM competitieschema ORDER BY datum ASC";
$matchdataresult = mysqli_query($connect, $matchdataquery) or die("De tabellen voor matchdata en teamdata zijn nog niet aangemaakt.<a href=index.php>klik hier</a> om terug te keren");
$matchtabel = "";
$matchnumrows = mysqli_num_rows($matchdataresult);
if($matchnumrows > 0){
while($matchdata = mysqli_fetch_assoc($matchdataresult)){
//toewijzen van data aan variable van associatieve array
$matchID = $matchdata['matchID'];
$thuisID = $matchdata['thuis'];
$uitID = $matchdata['uit'];
$datumdb = $matchdata['datum'];
$datum = date("d-m-Y", strtotime($datumdb));
$scorethuis = $matchdata['scorethuis'];
$scoreuit = $matchdata['scoreuit'];
if($scorethuis == NULL){
$scorethuis = NULL;
}
if($scoreuit == NULL){
$scoreuit = NULL;
}
//Ophalen van teamnaam en plaats van table voetbalteams
$teamnameQuery = "SELECT teamID, team, plaats FROM voetbalteams WHERE (teamID = '$thuisID' OR teamID = '$uitID');";
$teamnameResult = mysqli_query($connect, $teamnameQuery) or die("De tabellen voor de teamnamen en locatie zijn nog niet aangemaakt. <a href=index.php>klik hier</a> om terug te keren");
if($teamnameResult){
for($i= 0; $i< mysqli_num_rows($teamnameResult); $i++){
$teamnameArray [$i] = mysqli_fetch_row($teamnameResult);
}
//Toewijzen data aan variabelen
if($teamnameArray[0][0] == $thuisID){
$thuisname = $teamnameArray[0][1];
$plaats = $teamnameArray[0][2];
$uitname = $teamnameArray[1][1];
}else{
$thuisname = $teamnameArray[1][1];
$plaats = $teamnameArray[1][2];
$uitname = $teamnameArray[0][1];
}
//Toevoegen van plaatjes aan de juiste teams
$thuisimg = '<img alt="'.$thuisname.'" src="images/'.strtolower($thuisname).'.jpg">';
$uitimg = '<img alt="'.$uitname.'" src="images/'.strtolower($uitname).'.jpg">';
$datumlink = $datum;
//Data opslaan in variable om te tonen op het scherm
if(isset($_SESSION['userID'])){
if($scorethuis == NULL && $scoreuit == NULL){
$datumlink = '<a href="score.php?matchID='.$matchID.'">'.$datum .'</a>';
}
}
$matchtabel .= "<tr>
<td>$thuisimg"." "."$thuisname</td>
<td>$uitimg"." "."$uitname</td>
<td>$scorethuis : $scoreuit</td>
<td>$plaats</td>
<td>$datumlink</td>
</tr>";
}
}
}else{
$matchtabelCaption = "Er zijn nog geen wedstrijden toegevoegd. Log in om een wedstrijd toe te voegen of registreer een account.";
$matchtabel = "";
if(!empty($_SESSION['userID'])){
$matchtabelCaption = "Er zijn nog geen wedstrijden toegevoegd.";
}
}
//Ophalen van de data voor de pouletabel
$pouledataquery = "SELECT teamID, team, speelsterkte FROM voetbalteams;";
$pouledataresult = mysqli_query($connect, $pouledataquery) or die("De tabellen voor de poule zijn nog niet aangemaakt. <a href=index.php>klik hier</a> om terug te keren");
//Controleren of er rijen zijn met data
$poulenumrows = mysqli_num_rows($pouledataresult);
$pouletabel = "";
//Door de data heenlopen en deze opslaan in een array om deze op het scherm te tonen
if($poulenumrows > 0){
while($pouledata = mysqli_fetch_assoc($pouledataresult)){
//Toewijzen van data aan variable van assoc array
$teamID = $pouledata['teamID'];
$team = $pouledata['team'];
$speelsterkte = $pouledata['speelsterkte'];
$pouleimg = "<img alt=".$team." src=\"images/".strtolower($team).".jpg\">";
//reset veriabelen
$scoreVoor = 0;
$scoreTegen = 0;
$wins = 0;
$even = 0;
$loss = 0;
$stand = 0;
$nettscore = 0;
$telmatches = 0;
//Ophalen van data van gespeelde wedstrijden om de wedstrijd data te tonen op het scherm
$playedmatchesQuery = "SELECT * FROM competitieschema WHERE (thuis = '$teamID' OR uit = '$teamID');";
$playedmatchesResult = mysqli_query($connect, $playedmatchesQuery) or die("De tabellen voor de gespeelde wedstrijden zijn nog niet aangemaakt. <a href=index.php>klik hier</a> om terug te keren");
if($playedmatchesResult){
while($playedmatches = mysqli_fetch_assoc($playedmatchesResult)){
$matchthuisID = $playedmatches['thuis'];
$matchtuitID = $playedmatches['uit'];
if(!is_null($playedmatches['scorethuis']) && !is_null($playedmatches['scoreuit'])){
if($teamID != $matchthuisID){
$scoreVoor = $scoreVoor + $playedmatches['scoreuit'];
$scoreTegen = $scoreTegen + $playedmatches['scorethuis'];
$matchthuisScore = $playedmatches['scoreuit'];
$matchuitScore = $playedmatches['scorethuis'];
}else{
$scoreVoor = $scoreVoor + $playedmatches['scorethuis'];
$scoreTegen = $scoreTegen + $playedmatches['scoreuit'];
$matchthuisScore = $playedmatches['scorethuis'];
$matchuitScore = $playedmatches['scoreuit'];
}
if($matchthuisScore > $matchuitScore){
$wins++;
$stand = $stand + 3;
}elseif($matchthuisScore == $matchuitScore){
$even++;
$stand = $stand + 1;
}else{
$loss++;
}
//Berekenen van doelpuntenbalans
$nettscore = $scoreVoor - $scoreTegen;
$telmatches++;
}
}
}
$telteams++;
//Opslaan van data in variable om te sorteren
$pouletabelArray[$telteams]= array($pouleimg. " " . $team, $speelsterkte, $telmatches, $wins, $even, $loss, $scoreVoor, $scoreTegen, $nettscore, $stand);
}
}else{
$pouletabelmsg = "Geen data beschikbaar";
}
//Sorteren van de array gebasseerd op de stand van de poule
foreach($pouletabelArray as $index => $row){
$columndoelstand[$index] = $row[8];
$columnpoulestand[$index] = $row[9];
}
//Sorteren van table gebaseerd op doelsaldo
array_multisort($columnpoulestand, SORT_DESC, $columndoelstand, SORT_DESC, $pouletabelArray);
for($teams = 0; $teams < $poulenumrows; $teams++){
$pouletabel .= "<tr>";
for($stats = 0; $stats < count($pouletabelArray[0]); $stats ++){
$pouletabel .= "<td>".$pouletabelArray[$teams][$stats]."</td>";
}
$pouletabel .= "</tr>";
}
?>
<!---Het op het scherm te tonen informatie in HTML met PHP--->
<header>
<h1>Scorebord</h1>
</header>
<div id="container">
<div class="nav">
<?php echo get_navbar($connect);?>
</div>
<span class = error><?php echo $message; echo $pouletabelmsg; ?></span>
<table class="pouletabel">
<caption>Poule overzicht</caption>
<tr>
<th>Team</th>
<th>Speelsterkte (elo)</th>
<th>Gespeeld</th>
<th>Winst</th>
<th>Gelijkspel</th>
<th>Verloren</th>
<th>Goals voor</th>
<th>Goals tegen</th>
<th>Doelsaldo</th>
<th>Poulestand</th>
</tr>
<?php echo $pouletabel;?>
</table>
<table class="matchtabel">
<caption><?php echo $matchtabelCaption; ?></caption>
<tr>
<?php if(!empty($matchtabel)){echo "<th>Thuis</th>
<th>Uit</th>
<th>Stand</th>
<th>Locatie</th>
<th>Speeldatum</th>";}
?>
</tr>
<?php echo $matchtabel;?>
</table>
<table class="matchtabel2">
<caption><?php echo $matchtabelCaption2; ?></caption>
<tr>
<?php if(!empty($matchtabel)){echo "<th>Thuis</th>
<th>Uit</th>
<th>Stand</th>
<th>Locatie</th>
<th>Speeldatum</th>";}
?>
</tr>
<?php echo $matchtabel;?>
</table>
</div>
</body>
</html>
Ik hoop dat iemand mij kan helpen om dit wel voor elkaar te krijgen, alvast bedankt.
Michel