Membre existe déjà

Résolu/Fermé
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 22 déc. 2014 à 15:15
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 23 déc. 2014 à 12:39
Bonjour
Je souhaiterai faire une dernière condition à savoir éviter d'insérer un membre déjà présent dans ma BDD.
S'ils vous plait pouvez jeter un oeil sur mon script pour me dire ce qui ne va pas en vous remerciant.
En fait je passe pas la deuxième condition "$erreur = 'Ce membre existe déjà !';"
même si le membre n'existe pas encore, je ne sais vraiment pas ou je me suis trompé.
Merci beaucoup
	public function verif() {

		$requete = $this->bdd->prepare("SELECT * FROM  tb_adherent WHERE pseudo = '$this->pseudo'");
		$requete->execute();
		$result = $requete->fetchAll();
		
		$requete2 = $this->bdd->prepare("SELECT COUNT(*) FROM  tb_adherent WHERE nom = '$this->nom' AND prenom = '$this->prenom'");
		$requete2->execute();
		$result2 = $requete2->fetchAll();

		if(empty($this->nom) || empty($this->prenom) || empty($this->pseudo) || empty($this->password) || empty($this->debut)) {
			$erreur = 'Veuillez remplir tous les champs';
			return $erreur;
		} elseif (count($result2) > 0 ) {
			$erreur = 'Ce membre existe déjà !';
			return $erreur;	
		} elseif (count($result) > 0 ) {
			$erreur = 'Ce Login existe déjà, veuillez en choisir un autre !';
			return $erreur;			
		} else {
			return 'success';
		}
	}

6 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 22/12/2014 à 15:41
Bonjour,

Essayes ça :

<?php

public function verif() {
$resultat = "";
  if(empty($this->nom) || empty($this->prenom) || empty($this->pseudo) || empty($this->password) || empty($this->debut)) {
   $resultat = 'Veuillez remplir tous les champs';
  } elseif (count(checkIfuserExistByPseudo()) > 0 ) {
      $resultat = 'Ce Login existe déjà, veuillez en choisir un autre !'; 
  } elseif (checkIfuserExistByNomPrenom() > 0 ) {   
      $resultat = 'Ce membre existe déjà !';      
  } else {
   $resultat = 'success';
  }
  return $resultat;
 }
  
  public function checkIfuserExistByPseudo(){
  $sql="SELECT * 
        FROM  tb_adherent 
        WHERE pseudo = '$this->pseudo'";
   $requete = $this->bdd->prepare($sql);
  $requete->execute();
  $result = $requete->fetchAll();
    return count($result);
  }

  public function checkIfuserExistByNomPrenom(){
  $sql ="SELECT COUNT(nom) as NB 
          FROM  tb_adherent 
          WHERE nom = '$this->nom' 
          AND prenom = '$this->prenom'  
          GROUP BY nom";
    $requete2 = $this->bdd->prepare($sql);
  $requete2->execute();
  $result2 = $requete2->fetchAll();
    return $result2[0]['NB'];
  }
?>


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
22 déc. 2014 à 17:00
bonjouir,
Cela me renvoi une erreur la fonction n'est pas définie à la ligne 7 de ton post en fait
Merci
 Fatal error: Call to undefined function checkIfuserExistByPseudo() in C
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
22 déc. 2014 à 17:07
Oui désolé.
Il faut mettre un $this-> devant...

public function verif() {
$resultat = "";
  if(empty($this->nom) || empty($this->prenom) || empty($this->pseudo) || empty($this->password) || empty($this->debut)) {
   $resultat = 'Veuillez remplir tous les champs';
  } elseif (count($this->checkIfuserExistByPseudo()) > 0 ) {
      $resultat = 'Ce Login existe déjà, veuillez en choisir un autre !'; 
  } elseif ($this->checkIfuserExistByNomPrenom() > 0 ) {   
      $resultat = 'Ce membre existe déjà !';      
  } else {
   $resultat = 'success';
  }
  return $resultat;
 }
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
22 déc. 2014 à 18:19
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
Modifié par papyclic le 22/12/2014 à 19:24
Bonjour
Encore une toute petite notice s'il te plait
à la ligne 24 de ton premier post au niveau du return
Merci
 return count($result);

Notice: Undefined variable: result in C:
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
22 déc. 2014 à 23:46
Bonjour
Je vais encore regarder demain je pense que ça devrait le faire,
Je te redis
A demain
Merci
0

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

Posez votre question
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
23 déc. 2014 à 08:37
Bonjour
A prioro tyout fonctionne il y a juste une petite erreur.

Notice: Undefined offset: 0 in C:

au niveau du return

return $result2[0]['NB'];

Merci si tu peux me dire pourquoi.
Merci beaucoup
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 déc. 2014 à 09:41
Bonjour,

Essayes comme ça :
  public function checkIfuserExistByNomPrenom(){


  $sql ="SELECT COUNT(nom) as NB 
          FROM  tb_adherent 
          WHERE nom = '$this->nom' 
          AND prenom = '$this->prenom'  
          GROUP BY nom";
    $requete2 = $this->bdd->prepare($sql);
  $requete2->execute();
  $result2 = $requete2->fetchAll();
    return isset($result2[0]['NB'])?$result2[0]['NB']:0;
  }
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
23 déc. 2014 à 12:39
Bonjour

Un très grand Merci pour tout.
Toutes les conditions fonctionnent très bien.
Bonne fête de fin d'année.
Merci
0