Comparaison de deux variables erronée ?

Petit nouveau ! | 2 Messages

24 avr. 2009, 16:12

Bonjour à tous :)

Je viens ici pour exposer mon problème avec la comparaison de variables.
Je fais un jeu, qui permet entre autres la gestion de scores en ligne, et j'aimerais que s'effectue au lancement de ce jeu une vérification de la version pour dire à l'utilisateur en cas de besoin qu'il n'a pas la dernière version du jeu.
Pour cela, le jeu se connecte à une page php en envoyant la valeur de la version du jeu de l'utilisateur et compare cette variable à la valeur de la version du jeu la plus récente.

"...serveur.php?ver=1"
Ou ver=1 est le numéro de la version.

Voici mon code :
<?

$service = "";
$username = "";
$password = "";
$database = "";

$version = $_REQUEST['ver'];

mysql_connect($service, $username, $password);
@mysql_select_db($database) or die( "Unable to select database");


$query = "SELECT numversion FROM jeux WHERE nomjeu='jeu1'";
$result = mysql_query($query);
$verif = mysql_result($result, 0, numversion);

echo $version;
echo $verif;

if ($version = $verif) {
	echo ("oui");
}
else {
	echo ("non");
}

?>
En gros, si le numéro de la version stockée dans la base de données est le même que le numéro envoyé par le jeu, la version est la bonne et le page envoie "oui", sinon elle envoie "non".
Ça marche si la version du joueur ainsi que le numéro stocké dans la base de données sont égaux à 1. Cela m'affiche : "11oui" le premier 1 est la version du jeu du joueur, le deuxième est la valeur stockée.

Par contre, si j'envoie la valeur 2 ("...serveur.php?ver=2")
Voilà ce qui m'est affiché : "21oui"
Les deux numéros de version sont inégaux, ils sont affichés JUSTE avant d'exécuter la condition, pourtant, la condition me dit que ces numéros sont égaux.

Ou ai-je fait une erreur ?
Merci beaucoup d'avance pour vos réponses ;)

PS : J'espère ne pas m'être trompé de forum, j'ai du SQL dans mon code mais il ne me semble pas que ce soit dans cette partie qu'il y'a une erreur. Désolé si j'ai pas posté au bon endroit ^^'

ViPHP
ViPHP | 2291 Messages

24 avr. 2009, 16:22

Salut,

Alors déjà il y a une erreur au niveau de ton test ici
$version = $verif
tu lui dit que $version est égal à $verif tu ne lui demande pas ci $version est égal à $verif
pour lui demander de vérifier ci les valeurs sont égal il faut faire ceci
$version == $verif
//ou
$version === $verif
Proposition de correction
<?php 

$service = ""; 
$username = ""; 
$password = ""; 
$database = ""; 

$version = $_REQUEST['ver']; 

mysql_connect($service, $username, $password); 
@mysql_select_db($database) or die( "Unable to select database"); 


$query = "SELECT numversion FROM jeux WHERE nomjeu='jeu1'"; 
$result = mysql_query($query); 
//$verif = mysql_result($result, 0, numversion); 
$verif_data = mysql_fetch_array($req);

$verif = $verif_data['numversion'] ;

$verification = ( $version == $verif) ? 'Oui' : 'Non'; 

echo $verification;

?> 

Petit nouveau ! | 2 Messages

24 avr. 2009, 16:33

Ça marche !

Merci beaucoup pour la réponse rapide ! :)
J'étais persuadé qu'on comparait des variables comme j'ai essayé de le faire !
En tout cas je suis content, je vais pouvoir continuer mon jeu :p