je suis en train de réaliser un site sportif comprenant l'édition de résultats et une automatisation d'un classement!!
J'ai donc fait un formulaire permettant d'entrer les résultats puis lors du traitement de ce formulaire j'envois à la base de données les résultats des matchs correspondants à ceux rempli. Puis après je souhaite modifier une table nommée equipes qui me permet d'afficher le classement (la fonction d'affichage a déjà été réalisée).
Seulement, j'ai un petit soucis lors de mon traitement du nombre de victoires, défaites:
<?php
//On remet à zéro toutes les variables dans le classement
mysql_query('UPDATE equipes
SET Equipe_MJ=0,
Equipe_V=0,
Equipe_Vp=0,
Equipe_D=0,
Equipe_Dp=0,
Equipe_Pts=0,
Equipe_Plus=0,
Equipe_Moins=0,
Equipe_Diff=0
WHERE Equipe_ChampID=1') or die (mysql_error());
//On récupère les variables
for ($i=1 ; $i<=26 ; $i++)
{
for ($j=1 ; $j<8; $j++)
{
$Equipe1 = "equipe1_journee".$i."_match".$j."";
$Equipe2 = "equipe2_journee".$i."_match".$j."";
$enreg1 = "score1_journee".$i."_match".$j."";
$enreg2 = "score2_journee".$i."_match".$j."";
$enreg3 = "prolongation_journee".$i."_match".$j."";
$EquipeDom = mysql_real_escape_string ($_POST[''.$Equipe1.'']);
$EquipeVis = mysql_real_escape_string ($_POST[''.$Equipe2.'']);
$equipe_dom_sql = mysql_query ('SELECT Club_ID FROM club WHERE Club_Nom = "'.$EquipeDom.'"') or die (mysql_error());
$equipe_dom = mysql_fetch_assoc($equipe_dom_sql);
$id_dom = $equipe_dom['Club_ID'];
$equipe_vis_sql = mysql_query ('SELECT Club_ID FROM club WHERE Club_Nom = "'.$EquipeVis.'"') or die (mysql_error());
$equipe_vis = mysql_fetch_assoc($equipe_vis_sql);
$id_vis = $equipe_vis['Club_ID'];
$equipeDom_sql = mysql_query ('SELECT * FROM equipes WHERE Equipe_ID = '.$id_dom.'') or die (mysql_error());
$equipeDom = mysql_fetch_assoc($equipeDom_sql);
$MJ_dom_avant = $equipeDom['Equipe_MJ'];
$Vict_dom_avant = $equipeDom['Equipe_V'];
$Def_dom_avant = $equipeDom['Equipe_D'];
$Vict_prol_dom_avant = $equipeDom['Equipe_Vp'];
$Def_prol_dom_avant = $equipeDom['Equipe_Dp'];
$Pts_dom_avant = $equipeDom['Equipe_Pts'];
$Plus_dom_avant = $equipeDom['Equipe_Plus'];
$Moins_dom_avant = $equipeDom['Equipe_Moins'];
$Diff_dom_avant = $equipeDom['Equipe_Diff'];
$equipeVis_sql = mysql_query ('SELECT * FROM equipes WHERE Equipe_ID = '.$id_vis.'') or die (mysql_error());
$equipeVis = mysql_fetch_assoc($equipeVis_sql);
$MJ_vis_avant = $equipeVis['Equipe_MJ'];
$Vict_vis_avant = $equipeVis['Equipe_V'];
$Def_vis_avant = $equipeVis['Equipe_D'];
$Vict_prol_vis_avant = $equipeVis['Equipe_Vp'];
$Def_prol_vis_avant = $equipeVis['Equipe_Dp'];
$Pts_vis_avant = $equipeVis['Equipe_Pts'];
$Plus_vis_avant = $equipeVis['Equipe_Plus'];
$Moins_vis_avant = $equipeVis['Equipe_Moins'];
$Diff_vis_avant = $equipeVis['Equipe_Diff'];
$ScoreDom = intval ($_POST[''.$enreg1.'']);
$ScoreVis = intval ($_POST[''.$enreg2.'']);
//Si un score a été rempli pour les deux équipes on met à jour la base de données avec l'id du vainqueur, les scores et la prolongation (valeur 1 si il y a eu)
if ((empty($ScoreDom))&&(empty($ScoreVis)))
{
}
else
{
if (isset($_POST[''.$enreg3.'']))
{
//Si il y a eu Prologation, on met la valeur 1 à la variable prol et on garde les valeur des victoires et defaites pas en prol
$Prol = 1;
$Vict_vis=$Vict_vis_avant;
$Def_vis=$Def_vis_avant;
$Vict_dom=$Vict_dom_avant;
$Def_dom=$Def_dom_avant;
if ($ScoreDom>$ScoreVis)
{
//Si l'équipe vainqueur est celle domicile, on incrémente la victoire en prol à domicile et la défaite en prol du visiteur d'un mais on garde la même valeur pour la defaite prol à domicile et victoire prol à l'extérieur
$EquipeVainq = $id_dom;
$Vict_prol_dom=$Vict_prol_dom_avant+1;
$Def_prol_dom=$Def_prol_dom_avant;
$Vict_prol_vis=$Vict_prol_vis_avant;
$Def_prol_vis=$Def_prol_vis_avant+1;
}
else if ($ScoreDom<$ScoreVis)
{
//Si l'équipe vainqueur est celle exterieure, on incrémente la victoire en prol à l'exterieur et la défaite en prol à domicile d'un mais on garde la même valeur pour la defaite prol à l'exterieur et victoire prol à domicile
$EquipeVainq = $id_vis;
$Vict_prol_vis=$Vict_prol_vis_avant+1;
$Def_prol_vis=$Def_prol_vis_avant;
$Vict_prol_dom=$Vict_prol_dom_avant;
$Def_prol_dom=$Def_prol_dom_avant+1;
}
}
else
{
//Si il n'y a pas eu Prologation, on met la valeur 0 à la variable prol et on garde les valeur des victoires et defaites en prol
$Prol = 0;
$Vict_prol_vis=$Vict_prol_vis_avant;
$Def_prol_vis=$Def_prol_vis_avant;
$Vict_prol_dom=$Vict_prol_dom_avant;
$Def_prol_dom=$Def_prol_dom_avant;
if ($ScoreDom>$ScoreVis)
{
//Si l'équipe vainqueur est celle domicile, on incrémente la victoire à domicile et la défaite du visiteur d'un mais on garde la même valeur pour la defaite à domicile et victoire à l'extérieur
$EquipeVainq = $id_dom;
$Vict_dom=$Vict_dom_avant+1;
$Def_dom=$Def_dom_avant;
$Vict_vis=$Vict_vis_avant;
$Def_vis=$Def_vis_avant+1;
}
else if ($ScoreDom<$ScoreVis)
{
//Si l'équipe vainqueur est celle exterieure, on incrémente la victoire à l'exterieur et la défaite à domicile d'un mais on garde la même valeur pour la defaite à l'exterieur et victoire à domicile
$EquipeVainq = $id_vis;
$Vict_vis=$Vict_vis+1;
$Def_vis=$Def_vis_avant;
$Vict_dom=$Vict_dom_avant;
$Def_dom=$Def_dom_avant+1;
}
}
// On incrément de 1 les matchs joués par l'équi domicile et exterieur
$MJ_dom=$MJ_dom_avant+1;
$MJ_vis=$MJ_vis_avant+1;
mysql_query('UPDATE magnus
SET Magnus_Score_EquipeDom="'.$ScoreDom.'",
Magnus_Score_EquipeVis="'.$ScoreVis.'",
Magnus_Vainqueur="'.$EquipeVainq.'",
Magnus_Prolongation="'.$Prol.'"
WHERE Magnus_EquipeDom="'.$EquipeDom.'"
AND Magnus_EquipeVis="'.$EquipeVis.'"') or die (mysql_error());
//On calcule le nombre de points suivant cette règle: victoire (prol ou non) vaut 2 points et defaite en prol vaut 1 point. defaite vaut 0 point
$Pts_dom=$Vict_dom*2+$Vict_prol_dom*2+$Def_prol_dom;
//On calcul les buts marquées et encaissés puis on fait la différence
$Plus_dom=$Plus_dom_avant+$ScoreDom;
$Moins_dom=$Moins_dom_avant+$ScoreVis;
$Diff_dom=$Plus_dom-$Moins_dom;
mysql_query('UPDATE equipes
SET Equipe_MJ="'.$MJ_dom.'",
Equipe_V="'.$Vict_dom.'",
Equipe_Vp="'.$Vict_prol_dom.'",
Equipe_D="'.$Def_dom.'",
Equipe_Dp="'.$Def_prol_dom.'",
Equipe_Pts="'.$Pts_dom.'",
Equipe_Plus='.$Plus_dom.',
Equipe_Moins='.$Moins_dom.',
Equipe_Diff='.$Diff_dom.'
WHERE Equipe_ID='.$id_dom.'') or die (mysql_error());
//On calcule le nombre de points suivant cette règle: victoire (prol ou non) vaut 2 points et defaite en prol vaut 1 point. defaite vaut 0 point
$Pts_vis=$Vict_vis*2+$Vict_prol_vis*2+$Def_prol_vis;
//On calcul les buts marquées et encaissés puis on fait la différence
$Plus_vis=$Plus_vis_avant+$ScoreVis;
$Moins_vis=$Moins_vis_avant+$ScoreDom;
$Diff_vis=$Plus_vis-$Moins_vis;
mysql_query('UPDATE equipes
SET Equipe_MJ="'.$MJ_vis.'",
Equipe_V="'.$Vict_vis.'",
Equipe_Vp="'.$Vict_prol_vis.'",
Equipe_D="'.$Def_vis.'",
Equipe_Dp="'.$Def_prol_vis.'",
Equipe_Pts="'.$Pts_vis.'",
Equipe_Plus='.$Plus_vis.',
Equipe_Moins='.$Moins_vis.',
Equipe_Diff='.$Diff_vis.'
WHERE Equipe_ID='.$id_vis.'') or die (mysql_error());
}
}
}
echo 'Les résultats et le calendrier ont bien été mis à jour !';
?>
En effet au bout de la deuxième journée il m'affiche une équipe avec 4 Victoire et un autre avec 3 victoires!!Ce n'est pas au niveau de l'affichage puisqu'en fait le chiffre 3 et 4 sont insérer dans la base de donnée par cette page!!
j'ai beau cherché, je ne vois pas où est mon erreur!!
Peut être qu'un oeil nouveau me la trouvera!! Merci