begin process at 2012 05 28 20:45:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

classement automatique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

classement automatique

mercredi 27 juin 2007 à 11:57:16 | classement automatique

wadpap13

Bonjour à tous !!!

Suite à des résultats de Rugby, j'aimerais faire un classement automatique en fonction des points et de la différence de points.

Imaginons un groupe de 4 avec les equipe a, b, c et d.

Avec des matchs :
a-b
c-d

Je pense qu'une idée de départ serait de stockée les scores de a, b, c et d dans des variables comme score_a, score_b... pour ensuite pouvoir les comparer et affecter 4 points à l'equipe qui gagne, 2 points pour match nul et 0 pour la defaite.

Mais apres je ne vois pas comment faire pour obtenir et afficher un classement trié par points et différence de points...

Merci de votre aide !!!
mercredi 27 juin 2007 à 14:09:33 | Re : classement automatique

audayls

Réponse acceptée !
Salut,
Voici un petit code qui pourrait t'aider ;-) Par contre il ne gère pas les équipes exaequo j'essaye de régler çà ce soir ^^
<?php
$classement = array(); // Tableau qui contiendra les points.
$equipes = array('Equipe A', 'Equipe B', 'Equipe C', 'Equipe D'); // Equipes.
$resultats = array('Equipe A-Equipe B' => '7-0', 'Equipe C-Equipe D' => '14-7', 'Equipe C-Equipe A' => '14-24'); // Resultats.

$hight = 0; // Variable contenant le score le plus élevé.
$i = -1;
$keys = array_keys($resultats); // On prends toutes les clés du tableau de résultat.
while (isset($equipes[++$i])) {
    $classement[$equipes[$i]] = 0; // On fixe le score par défaut (0 du moins normalement XD)
    $j = -1;
    while (isset($keys[++$j])) {
        $pos = strpos($keys[$j], $equipes[$i]); // On vérifie si le nom de l'équipe et dans la clé du match.
        if ($pos !== FALSE) {
            $temp = explode('-', $resultats[$keys[$j]]); // On "explose" le tiret du score pour obtenir les 2 résultats.
            if ((int) $temp[0] === (int) $temp[1]) $classement[$equipes[$i]] += 2; // Si les 2 scores sont identiques (match nul) on ajoute 2 points à l'équipe.
            elseif ($pos === 0 AND (int) $temp[0] > (int) $temp[1]) $classement[$equipes[$i]] += 4; // Si l'équipe est placée avant le tiret et que le nombre avant le tiret est supérieur (match gagné) on ajoute 4 points à l'équipe.
            elseif ($pos !== 0 AND (int) $temp[0] < (int) $temp[1]) $classement[$equipes[$i]] += 4; // Si l'équipe est placée après le tiret et que le nombre après le tiret est supérieur (match gagné) on ajoute 4 points à l'équipe.
        }
        if ($classement[$equipes[$i]] > $hight) $hight = $classement[$equipes[$i]]; // Si le score de l'équipe est meilleur que la variable "$hight" on remplace la variable par ce score.
    }
}

arsort($classement); // On trie le classement par ordre décroissant en conservant les clés.
$keys = array_keys($classement); // On prends toutes les clés du tableau de classement.
$i = -1;
while (isset($keys[++$i])) {
    // "$i+1" => Rang de l'équipe.
    // "$keys[$i]" => Nom de l'équipe.
    // "$classements[$keys[$i]]" => Score de l'équipe.
    // "$classement[$keys[$i]]-$hight" => Différence de points avec la première équipe.

    echo $i+1,' - ',$keys[$i],' - Différence de ',$classement[$keys[$i]]-$hight,"<br />\n";
}

?>


For every choice, a consequence (Fable)
mercredi 27 juin 2007 à 14:27:33 | Re : classement automatique

wadpap13

Merci beaucoup !!


T'embete pas pour les equipes exaequo, on peut refaire un sort diff avant le sort points.


Merci !!!


Cette discussion est classée dans : points, classement, différence, automatique, equipe


Répondre à ce message

Sujets en rapport avec ce message

Classement automatique de la ligue 1 [ par antho11 ] Bonjour,Pour mon site de foot je souhaiterais faire un classement automatique de la L1,on rentre les résultats et hope sa se calcule tout automatique. probleme classement par chiffres [ par magicjim ] Bonjour a tous, mon probleme est que je viens de faire un script pour effectuer un classement des 30 meilleurs points mais seulement il m'affuiche le Comment cloner un objet ? :x [ par Arkalis ] Bonsoir, Voila, j'ai un pb sur un projet que je suis en train de développer je suis en train de faire des classements sur les championnats francais, création de requête de classement [ par steve2206 ] Salut à tous, j'aimerai créer une requête "classement" en fonction des résultats de tous les participants à un qcm. Problème: la BDD est un alien pou Creation d'un championnat [ par guisx00 ] Salut j'aurais bessoin d'adie pour cree un championnat pour un jeux video.Je cherche comment quand je rentre un nouveau match  ajouté à la table déja Classement [ par seb78 ] Bonjour, J'ai une base de donnée avec deux champs pseudo points Je recherche une requête SQL qui permet de donner la position d'un joueur en foncti Bonjour, je voudrai savoir comment faire la différence entre 2 date/heure différente! [ par williamprotti ] Bonjour, je voudrai savoir comment faire la différence entre 2 date/heure différente!par exemple:$date1 = date("d/m/Y H:i:s");$date2 = date("d/m/Y H:i Calcul de deux champ avec résultat dans un autre champ [ par arambasic ] Voici ma question :je dispose de plusieurs champs dans la table dont 3 qui sont importants pour ma questionle champ points_precle champ points_moisle Ouverture automatique d'une page dans une nouvelle fenetre [ par Vin Gazoil ] salut a tous ! voila en fait comme mon titre l'indique, j'aimerai pouvoir ouvrir une page automatiquement dans une nouvelle fenetre. je possède dej Pourquoi cette requete ne fonctionne pas ? [ par arambasic ] $qry="SELECT points_mois,points_jeux FROM users";            $req=mysql_query($qry) or die ("Echec requete SQL");              &


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,964 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales