[PHP] Problème bizarre

Fermé
Mortinos - 3 sept. 2009 à 21:43
 Mortinos - 4 sept. 2009 à 17:06
Bonjour,
Je vais vous expliquer mon soucis , dans mon code , on verifie d'abord si le pseudo du joueur à déjà joué aujourd'hui dans une table uniquement prévue a ça , si il a déjà joué , donc pseudo déjà présent dans la table il doit etre dirigé vers une page d'erreur !
Problème , il peut rejouer autant de fois qu'il veux !

Voyez :
[...]

mysql_select_db("xtremdl_dejajoue");


$pseudojoue = mysql_query("SELECT pseudo FROM xtremdl_dejajoue") or die(mysql_error());
$donneespseudo = mysql_fetch_array($pseudojoue);

if ($donneespseudo[pseudo] == $pseudo)
{
header("location:dejajoue.php");
}
Else
{
mysql_query("INSERT INTO xtremdl_dejajoue(id, pseudo) VALUES('', '$pseudo')");
if ($donnees['ID'] == '15')
{
echo "Vous avez gagné !";
}
else
{
echo "Vous avez perdu !";
}
}
mysql_close();


?>

Le truc c'est qu'il est bien dans la table son pseudo , donc la valeur de la variable $pseudo est juste !

Je ne comprends pas d'ou peu venir l'erreur !
A voir également:

5 réponses

mya1 Messages postés 334 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 28 janvier 2013 42
3 sept. 2009 à 22:20
je pense que le problème réside dans la condition de if; tt d'abord faut ajouter une boucle for ou bien while pr qu'il boucle sur tout le tableau, après je pense que la condition doit s'ecrire ainsi: if ($pseudojoue == $pseudo) sans lesdeux crochets!!! ca doit ressembler un ti peu à ça::

for($i=0;$i<$donneespseudo;$i++)
{if(isset($_POST[$donneespseudo])== $pseudo)
là tu fais le traitement je pense que là tu vas appeler la page header("location:dejajoue.php");
}

PS: en fait dès fois le header ca marche pas
0
Le soucis c'est que la valeur de pseudo ne viens pas d'un formulaire précédement remplie , c'est un espace membre
0
Bonjour

Le problème, c'est que tu testes TOUJOURS le premier pseudo de la base.
la requête ("SELECT pseudo FROM xtremdl_dejajoue") extrait tous les pseudos
ton $donneespseudo = mysql_fetch_array($pseudojoue); extrait la première réponse.
Ensuite, tu ne traites que cette cette première réponse.

Il faut directement compter le nombre de bonnes réponses :


$reponse = mysql_query("SELECT count(*) as nombre FROM xtremdl_dejajoue WHERE pseudo = '$pseudo'") or die(mysql_error());
$ligne = mysql_fetch_array($reponse);

if ($ligne['nombre'] > 0) ...
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
3 sept. 2009 à 22:55
Slt
essaie ça voir
mysql_select_db("xtremdl_dejajoue");

$joueurExiste = false;   // Variable me permetant de determiner si le joueur existe ou non
$pseudojoue = mysql_query("SELECT pseudo FROM xtremdl_dejajoue") or die(mysql_error());

if(mysql_num_rows($pseudojoue) > 0)
{
     while(($donnespseudo = mysql_fetch_array($pseudojoue)) AND !($joueurExiste))
     {
          if($donnespseudo['pseudo'] == $pseudo)
          {
                  $joueurExiste = true;
          }
      }
}

if ($joueurExiste)
{
   header("location:dejajoue.php");
   // echo '<script>window.location="dejajoue.php"</script>'  // à utiliser si le header ne fonctionne pas.
}
Else
{
      mysql_query("INSERT INTO xtremdl_dejajoue(id, pseudo) VALUES('', '$pseudo')");
      if ($donnees['ID'] == '15')
      {
          echo "Vous avez gagné !";
      }
     else
     {
         echo "Vous avez perdu !";
      }
}
mysql_close(); 


Ben il y'a un truc que je ne comprend pas
xtremdl_dejajoue c'est quoi ? le nom de la BDD ou le nom de la table ou bien la BDD et la table ont le meme nom?

et j'espère que tu sais d'où proviens $donnees['ID']

cdlt.
;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Citation :

"Le problème, c'est que tu testes TOUJOURS le premier pseudo de la base. "


Exact ! Merci , je n'avais pas remarqué , je comprends donc pourquoi sous un pseudo ça marchait et pas sous un autre maintenant !

@William7007 >

Je viens d'essayer , ce code fonctionne parfaitement ! :D
Le header("Location....); marche parfaitement en plus !
Oui oui je sais d'où viens $donnees['ID'] et pour xtremdl_dejajoue , c'est le nom de la base de donnée , mais également celui de la table (peur de m'enmeller les pinceaux :D) .
Bref , merci a CCM et a vous tous de votre aide :)
C'est super , vous êtes géniaux :)
0
J'oubliais , une fois mon projet fini et opérationnel , dans les remerciements , je te citerais William7007 ;)
0