Evaluation IF

Répondre
vaxxin
le 22/04/2009 à 18:38
vaxxin
Bonjour,
J'ai un soucis dans un algorithme qui affiche les cinq derniers scores ajoutés et plus précisément lorsque je veux vérifier si l'utilisateur n'ajoute pas deux fois de suite le même score, voilà le principe.
Je lis la première ligne d'un fichier contenant mon score à ajouter, je regarde si elle ne correspond pas à la dernière valeur ajoutée seulement le soucis est que le "IF" ne fait pas son boulot. Voilà le code :
<?php
$scores = mysql_query("SELECT * FROM highscores") or die(mysql_error());
while ($donnees = mysql_fetch_array($scores) )
{
echo '<style type="text/css">
p{background-image : url("lol.png");
color : orange; padding : 20px;
margin-right : 00px;
margin-top : 0px;
margin-bottom : 0px;}
span{background-color : black;
margin-left : 100px;
padding : 5px;
font-family : "Hobo std", "Comic sans ms", "serif";}</style> ';
echo '<span><font color="white">';

echo $donnees['map'],'</font></span>' ,'<p></br>';
$map ='traiter/'.$donnees['map'].'.mqhs';
if (file_exists($map))
{
$file = fopen($map, "r+");
$ligne = fgets($file);
echo $donnees['score4']; //Affiche 6
echo $ligne;
//Affiche 6
If $ligne != $donnees['score4'] //Il rentre dans le code à mon grand desespoire !!!
{$i = 0;
for ($j = 0; $j <= 3; $j++)
{
$score = 'score'.$j;
$i = $j + 1;
$score1 = 'score'.$i;
mysql_query("UPDATE highscores SET $score = $score1 WHERE map = '".$donnees['map']."'");
}
$j = 4;
$score = 'score'.$j;
mysql_query("UPDATE highscores SET $score = $ligne WHERE map = '".$donnees['map']."'");
}
fclose($file);
//unlink($map);
}

Merci par avance pour votre aide
Vaxxin
vaxxin
le 22/04/2009 à 18:55
vaxxin
Bon, après quelques tests il semblerai que l'accès à $ligne soit en cause, vous savez pourquoi ou comment régler le soucis ? Merci
Vaxxin
LA GLOBULE
le 22/04/2009 à 20:50
LA GLOBULE
Si tu veux mon avis, ton $ligne doit contenir un retour chariot, ce qui fait qu'il n'a pas la même valeur que ton champ SQL.

Pour le vérifier, tu peux faire un strlen de $ligne et de $donnes['score4'].
Si tu ne trouves pas la même valeur (1), c'est que ton $ligne contient de la merde (un retour chariot a priori), et qu'il faudrait donc striper (tu peux utiliser trim pour cela).
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours