Partage
  • Partager sur Facebook
  • Partager sur Twitter

requête SQL qui ne fonctionne pas

mysqli_num_rows( )

Sujet résolu
    27 mai 2011 à 0:15:41

    Bonjour !

    J'ai un petit soucis avec la requête mysqli_num_rows(); Celle-ci ne fonctionne pas :(

    Voici mon code :

    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=blablou', 'root', '', $pdo_options);
    $find_pseudo = $bdd->query('SELECT * FROM account WHERE pseudo=\'$pseudo\'');
    $nb_pseudo = mysqli_num_rows($find_pseudo);
    


    Et voici mon erreur SQL (en localhost) :

    ( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, object given in C:\wamp\www\vue\register_c.php on line 25
    Call Stack
    #        Time        Memory        Function        Location
    1        0.0005        707224        {main}( )        ..\register_c.php:0
    2        1.0234        720904        mysqli_num_rows ( )        ..\register_c.php:25


    Je précise que j'ai essayé avec mysql_num_rows, mysqli_num_rows et aussi avec la syntaxe de la forme "$nb_pseudo = num_rows($find_pseudo)" ou avec "nb_pseudo = $find_pseudo->mysqli_num_row();" => j'ai vu différentes syntaxes sur différents forums (peut-être ancienne version SQL ou quoi, je sais pas trop).

    Ce que je souhaite faire :

    Je précise que ce que je souhaite faire est de compter le nombre de ligne où je retrouve le pseudo entré par l'utilisateur par un formulaire. Si je num_row me renvoi pas 0, cela signifie que le pseudo existe déjà et que donc, je demande à l'utilisateur de ressaisir un pseudo, s'il me renvoi 0, l'inscription est validée.

    Merci d'avance si quelqu'un a une idée, je suis un peu perdu! :-°
    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2011 à 1:08:51

      Tu fais un peu le mélange entre PDO et l'API MySQLi. mysqli_num_rows ne peut pas être utilisée en même temps que PDO.
      A ta place je ferais plutôt un SELECT COUNT(*) :
      $find_pseudo = $bdd->query("SELECT COUNT(*) as nb_pseudo FROM account WHERE pseudo='$pseudo'");
      $data = $find_pseudo->fetch();
      $nb_pseudo = $data['nb_pseudo'];
      


      A noter que ceci n'est qu'un exemple, je te recommande de passer par un prepare pour éviter d'éventuelles injections SQL.
      • Partager sur Facebook
      • Partager sur Twitter

      requête SQL qui ne fonctionne pas

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown