Formulaire d'inscription php

chrome -  
 wilson -
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. le père
     
    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. jojo
       
      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. chrome
     
    merci bcp ca a l'air de marcher!
    0
    1. le père
       
      C'était supposé aider à diagnostiquer le problème, pas le résoudre. Tu n'as rien fait d'autre ?
      0
    2. chrome
       
      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. chrome
       
      si ca se trouve c'était une faute de syntaxe
      0
    4. le père
       
      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. wilson
       
      il etre vigilant lorque tu code
      0