Vérifier l'existence d'un membre

Résolu
mathilda0 Messages postés 9 Statut Membre -  
Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Malgré les nombreux forums que j'ai visité, je n'arrive toujours pas à régler mon pb :/
Débutante en php et mysql pas facile...
Je m'explique, je veux vérifier que le pseudo est bien présent dans ma table MEMBRE
Donc voici ma requête:

$q= "SELECT * FROM MEMBRE WHERE pseudo='".$pseudo."'";
$res = $c->query($q);

if (!$res) echo "ce membre existe";
else echo "ce membre n'existe pas";

Et le problème est que quelque soit l'existence ou non du membre, c'est toujours le même "echo" qui apparaît...
J'espère enfin trouver une solution à mon problème
Merci d'avance

2 réponses

  1. Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   76
     
    Ou a essayer :

    //Declaration de la variable
    $pseudo = $_POST['pseudo'];

    //Requete qui va afficher un nombre
    $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM membres WHERE pseudo = "'.$word.'"'), 0);

    if($nombrepseudo != 0)
    {
    //Le pseudo existe
    }
    else
    {
    //Le pseudo existe pas
    }
    1
    1. informapierre Messages postés 465 Statut Membre 49
       
      C'est ce que j'allais poster ;)
      C'est la méthode la plus rapide au niveau de l'exécution.
      Par contre attention je voit que dans ton script la variable $pseudo n'est pas protégé, que la variable que tu cherche sur la table n'est pas le pseudo et que membre ne prend pas de s ;)
      0
    2. mathilda0 Messages postés 9 Statut Membre
       
      Ca ne fonctionne pas :/ ca me renvoit toujours la même chose :/

      Le fait que pseudo ne soit pas ma clé primaire dans ma bdd est un problème?
      0
    3. informapierre Messages postés 465 Statut Membre 49
       
      tu a crée une connection a te base de donnée au moins avant de lancer sa, tu pourrait nous donne ton script complet ?
      0
    4. mathilda0 Messages postés 9 Statut Membre
       
      Oui j'ai bien crée une connexion, voici le code complet:
      <?php

      include ("connect.php");
      try {
      // Connexion
      $c=new PDO("mysql:host=$host;dbname=$dbname", $login, $password);
      // echo "<p>Connexion réussie.</p>\n";


      //Declaration de la variable
      $pseudo = $_POST['pseudo'];

      //Requete qui va afficher un nombre
      $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM MEMBRE WHERE pseudo = "'.$pseudo.'"'), 0);

      if($nombrepseudo != 0)
      {
      echo 'Votre pseudo est valide';//Le pseudo existe
      }
      else
      {
      echo 'Un membre possède ce pseudo';//Le pseudo existe pas
      }


      }
      catch (PDOException $erreur)
      {
      echo "<p>Erreur: ". $erreur->getMessage() . " </p>\n";
      }

      ?>
      0
    5. informapierre Messages postés 465 Statut Membre 49
       
      eu... tu nous fait un peu un mélange PDO et fonction php de base la ^^
      essai de plus cibler tes essais pour pouvoir savoir d'ou vient vraiment l'erreur.

      Voilà un code qui devrait marcher
      <?php 
      
      include ("connect.php"); 
      // Connexion à la base
      mysql_connect('adresse du serveur','utilisateur','mdp');
      
      
      //Declaration de la variable 
      $pseudo = $_POST['pseudo']; 
      
      //Requete qui va afficher un nombre 
      $nombre_pseudo = 'SELECT COUNT(*) AS nb FROM membre WHERE pseudo = "'. $pseudo.'"'; // on compose la requete 
      $requete = mysql_query($nombre_pseudo)or exit(mysql_error()); // on execute la requete
      $nb = mysql_fetch_assoc($requete);
      
      if($nb['nb'] == 1) { // si le nombre est 1
      echo 'Votre pseudo est valide';//Le pseudo existe 
       }
      else { 
      echo 'Un membre possède ce pseudo';//Le pseudo existe pas
      }
      
      ?>
      
      0
  2. ludo1325 Messages postés 175 Statut Membre 33
     
    Salut, supposons que ton code html est
    <input type="text" name="pseudo">


    Dans ton php:
    $req = $bdd->prepare('SELECT * FROM MEMBRE WHERE pseudo = :pseudo');
    $req->execute(array('pseudo'=> $_POST['pseudo']));
    $nb_resultats_recherche_membre=$req->fetch();
    if(!$nb_resultats_recherche_membre) {
    echo 'Votre pseudo est valide' //Si personne d'autre possède le pseudo
    }else{
    echo 'Un membre possède ce pseudo' //Si le pseudo existe déjà
    }
    


    Je te promet pas à 100% que sa marche, mais normalement sa devrait marcher.
    Tiens moi au courant :)
    0
    1. mathilda0 Messages postés 9 Statut Membre
       
      J'obtiens cette erreur :

      Fatal error: Call to a member function prepare() on a non-object
      0