Hejsan!
bygger just nu en ligatabell för fotbollslag i php och har kommit till den parten där array'en måste sorteras.
jag har en tabell för alla lagen och en tabell för matcherna i databasen!
efter all uträkning av poäng, vinster, förluster mm så byggs en array med för varje lag där all information som ska visas i tabellen är värdet, den ser ut så här:
PHP-kod:
$team_in_table = array (
'team' => $team['name'],
'played' => $total_played,
'wins' => $total_wins,
'draw' => $total_draw,
'loses' => $total_loses,
'skillnad' => $skillnad,
'points' => $total_points );
?>
här är ett exempel på hur den blir
PHP-kod:
Array ( [team] => Arsenal [played] => 5 [wins] => 2 [draw] => 0 [loses] => 3 [skillnad] => -9 [points] => 6 )
Nu är problemet med sorteringen.
Hur får jag listan att först sorteras efter poäng, sedan om 2 eller flera lag har lika många poäng så ska den sorteras efter målskillnad ('skillnad' i array) ?
har googlat men utan resultat.
kan även släppa hela koden som är gjord här:
PHP-kod:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<?php
$id = $_GET['id'];
if(!isset($id)){
die("inget id"); }
$placement = 0;
echo '<table border="1"><th></th><th></th><th>SM</th><th>P</th>';
include'../dbcon.php';
//hämtar ligan
$get_league = mysql_query("SELECT * FROM sk_league WHERE id = '".$id."'");
if(mysql_num_rows($get_league) == 0){
die("Ingen liga"); }
$league = mysql_fetch_array($get_league);
$get_teams = mysql_query("SELECT * FROM sk_team WHERE league = '".$id."'");
while($team = mysql_fetch_array($get_teams)){
//hemma matcher!
$home_wins = 0;
$home_draw = 0;
$home_loses = 0;
$home_goals = 0;
$home_ins = 0;
$get_home = mysql_query("SELECT * FROM sk_matches WHERE home_id = '".$team['id']."'");
$count_home = mysql_num_rows($get_home);
while($home = mysql_fetch_array($get_home)){
$home_goals = $home_goals + $home['goals_home'];
$home_ins = $home_ins + $home['goals_away'];
if($home['goals_home'] > $home['goals_away']){
$home_wins = $home_wins + 1; } else if ($home['goals_home'] == $home['goals_away']){
$home_draw = $home_draw + 1; } else if ($home['goals_home'] < $home['goals_away']){
$home_loses = $home_loses + 1; }}
//borta matcher!
$away_wins = 0;
$away_draw = 0;
$away_loses = 0;
$away_goals = 0;
$away_ins = 0;
$get_away = mysql_query("SELECT * FROM sk_matches WHERE away_id = '".$team['id']."'");
$count_away = mysql_num_rows($get_away);
while($away = mysql_fetch_array($get_away)){
$away_ins = $away_ins + $away['goals_home'];
$away_goals = $away_goals + $away['goals_away'];
if($away['goals_away'] > $away['goals_home']){
$away_wins = $away_wins + 1; } else if ($away['goals_home'] == $away['goals_away']){
$away_draw = $away_draw + 1; } else if ($away['goals_away'] < $away['goals_home']){
$away_loses = $away_loses + 1; }}
//totala statistik
$total_played = $count_home + $count_away;
$total_wins = $home_wins + $away_wins;
$total_draw = $home_draw + $away_draw;
$total_loses = $home_loses + $away_loses;
$total_goals = $home_goals + $away_goals;
$total_ins = $home_ins + $away_ins;
//poäng
$wins_points = 3 * $total_wins;
$draw_points = 1 * $total_draw;
$total_points = $wins_points + $draw_points;
//poängskillnad
$skillnad = $total_goals - $total_ins;
$team_in_table = array (
'team' => $team['name'],
'played' => $total_played,
'wins' => $total_wins,
'draw' => $total_draw,
'loses' => $total_loses,
'skillnad' => $skillnad,
'points' => $total_points );
$placement = $placement + 1;
?>
<tr><td><?= $placement; ?></td><tD><?= $team_in_table['team']; ?></tD><td><?= $team_in_table['played']; ?></td><td><?= $team_in_table['points']; ?></td></tr>
<?
}
echo "</table>";
?>
jag vet, det är inte den bästa koden, kunde gjort det bättre.
tacksam för svar!
//Philip Andersson!