Formulaire d'inscription php

Bonjour, j'ai un souci sur le codage d'un espace membre pour mon site. La ligne qui pose problème est celle en gras (replacée dans le 'contexte'). Un message d'erreur s'affiche :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/xx/xx.php on line ...

 //On echape les variables pour pouvoir les mettre dans une requette SQL 
                                 $username = mysql_real_escape_string($_POST['username']); 
                                 $password = mysql_real_escape_string($_POST['password']); 
                                 $email = mysql_real_escape_string($_POST['email']); 
                                 $avatar = mysql_real_escape_string($_POST['avatar']); 
                                 //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis 
                                $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));                             if($dn==0) 
                                 { 
                                         //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel 
                                         $dn2 = mysql_num_rows(mysql_query('select id from users')); 
                                         $id = $dn2+1; 
                                         


Merci beaucoup de votre aide car là je suis vraiment bloqué!

2 réponses

  1. Bonjour

    Pour analyser le problème, évite de tout faire en une seule ligne, et utilise la fonction mysql_error :

    $rep=mysql_query('select id from users where username="'.$username.'"') or die (mysql_error()); 
    $dn = mysql_num_rows($rep);
    0
    1. aider moi j'ai un probleme avec mon scrpte
      je n'arive pas a conneter un username en incrementent
      pourtan l'inscription a ete bien fait
       <?php
      //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
      $req = mysql_query('select * from users');
      $dnn = mysql_fetch_array($req);
      while ($dnn = mysql_fetch_array($req))
      {
      ?>
      <form action="xxxxxx.php?id=<?php echo $dnn['id']; ?>;
      <?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?>" method="post">
      <?php

      }
      ?>
      0
  2. merci bcp ca a l'air de marcher!
    0
    1. C'était supposé aider à diagnostiquer le problème, pas le résoudre. Tu n'as rien fait d'autre ?
      0
    2. je pensais que je devais faire un truc en plus mais j'ai copié collé ce que tu m'as donné et tout fonctionne. Apres, c'est peut-être bizarre mais bon mon problème a l'air d'être résolu :)
      0
    3. si ca se trouve c'était une faute de syntaxe
      0
    4. si ca se trouve c'était une faute de syntaxe
      Pourquoi dis-tu ça ? Je ne vois aucune erreur de syntaxe, à laquelle penses-tu ?
      D'autant plus que ma façon de présenter la requête ne change strictement rien à sa syntaxe.
      0
    5. il etre vigilant lorque tu code
      0