IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

fonction vérifier si existe déjà dans la BD


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 12
    Points : 7
    Points
    7
    Par défaut fonction vérifier si existe déjà dans la BD
    Bonjour ,
    J'ai un TP ou je doit attribué un ami dans un commission via deux liste déroulante .
    tout sa fonction . Mais je souhaite bloquer l'ajout lorsque l'on essaye d'ajouter un ami dans une commission ou il y est déjà.
    j'ai essayer différente chose mais ce là ne fonctionne pas . pour le moment je me suis arrêter à un SELECT COUNT mais je en suis pas sur que sa soit la bonne idée et si c'est le cas pouvez-vous m'aider à la faire fonctionner .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            function verifAmis($amis, $comission){
                $reqverif = "SELECT COUNT(*) AS nbr FROM repartir WHERE NUMCOMISSION ='$comission' AND NUMAMIS ='$amis'";
                //$reqverif2 = mysql_fetch_array($reqverif);
                if ($reqverif['nbr'] > 0 ){
                   echo "l'amis et déjà dans cette commission ! ";
                } 
     
     
     
            }

    Merci d'avance ^^

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Points : 168
    Points
    168
    Par défaut
    essay ca. La connection $db est en 'pdo'. Car dans la request de ton code il n'y a pas de connection..... enfin peut etre avais tu prevu de faire autrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function exist($nom, $commission)
    	  {
    	     /**
    	    *@VERIFNAME on vérifie que le nom existe ou pas.
    	    */
    	    $q = $db->prepare('SELECT COUNT(*) FROM nomCommission = :commission WHERE nom = :nom');
    	    $q->bindValue(':nom', $nom);
    	    $q->binValue(':commission', $commission)
    	    $result = $q->execute();
     
    	    /**
    	    *@ADDNAME on ajoute le nom ou pas.
    	    */
    	    if($result != FALSE)
    	    {
    	    	return addPaxCommission($nom);//en supposant que tu as une seconde function 'addPaxCommission($nom)' te servant a ajouter les noms
    	    }
    	    else
    	    {
    	    	throw new MyError ('Votre nom est deja present dans la commission.');//on renvoie une exception pour informer le visiteur.
    	    }	
    	  }

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour , on utilise le format MVC avec une classe PDO .

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Points : 168
    Points
    168
    Par défaut
    l'architecture MVC n'a rien a faire la dedans...??? tiens, un cours sur MVC : https://bpesquet.developpez.com/tuto...hitecture-mvc/

    et tiens un cours sur PDO : https://fmaz.developpez.com/tutoriel...omprendre-pdo/ .

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bon voici tout le code :

    la classe_pdo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?php
        require_once ("include/class_pdo_amis.php");
     
        class class_pdo_equipe10 extends PdoGsb{
     
            function get_amis(){
                $reqGetAmis = 'select * from amis';
                $getAmis = $this->monPdo->query($reqGetAmis);
                $ligneAmis = $getAmis->fetchAll();
                return $ligneAmis;
     
            }
     
               function get_commission(){
                $reqGetCommission = 'select * from comission';
                $getCommission = $this->monPdo->query($reqGetCommission);
                $ligneComission = $getCommission->fetchAll();
                return $ligneComission;
            } 
     
     
            function get_repartir(){
                $reqGetRepartir = 'select * from repartir ';
                $getRepartir = $this->monPdo->query($reqGetRepartir);
                $ligneRepartir = $getRepartir->fetchAll();
                return $ligneRepartir;
            }
     
     
            function verifAmis($amis, $comission){
                $reqverif = "SELECT COUNT(*) AS nbr FROM repartir WHERE NUMCOMISSION ='$comission' AND NUMAMIS ='$amis'";
                //$reqverif2 = mysql_fetch_array($reqverif);
                if ($reqverif['nbr'] == 0 ){
                   echo "cest  bon ";
                } else {
                    echo "cest pas bon ";
                }
     
     
     
            }
               function inscription($amis , $commission){
                   if($amis == "" & $commission == ""){
                       echo "erreur";
                   }else{
                       $req3 = "INSERT INTO repartir values ($amis , $commission , '')";
                       $res3 = $this->monPdo->exec($req3);
                   }
               }
               function get_actionComission($comission){
                       $req4="SELECT * FROM action INNER JOIN comission ON action.NUMCOMISSION = comission.NUMCOMISSION where comission.NUMCOMISSION = '$comission'";
                       $res4 = $this->monPdo->query($req4);
                       $connect = $res4->fetchAll();
                       return $connect;
               }
        }
    ?>

    et la vue inscription à une commission :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php
    ob_start();
    $title="Inscription à une comission";
    $css="";
    $bureauComission = $pdo->get_commission();
    /*var_dump($bureauComission);
    echo $bureauComission['NOMCOMISSION'];*/
     
    $amisComission = $pdo->get_amis();
    //var_dump($amisComission);
    if(isset($_POST['Ajouter'])){
        $pdo->inscription($_POST['amis'], $_POST['comission']);
    }
     
    //verif membre déja présent 
    $verifAmisComission = $pdo->get_repartir();
     
    if(isset($_POST['Ajouter'])){
        $pdo->verifAmis($_POST['amis'], $_POST['comission']);
    }
     
     
     
     
     
     
    ?>    
     
     
    <h1> Saisie du bureau de la Commission</h1>
    <form method="post" action="" >
    <div class="d-flex justify-content-center">
        <div class="form-group col-md-4">
     
          <label for="inputState"  class="col-sm-2 col-form-label">Comission</label>
          <div class="col-sm-10">
          <select id="inputState"  class="form-control form-control-sm" name="comission" >
            <option selected="" disabled="" required="">Choisir...</option>
            <?php
     
            foreach($bureauComission as $unBureau){?>
              <option value=<?php echo $unBureau['NUMCOMISSION'];?>><?php echo $unBureau['NOMCOMISSION']; ?></option>
            <?php } ?>
          </select>
          </div>
        </div>
        <div class="form-group col-md-4">
     
          <label for="inputState2"  class="col-sm-2 col-form-label">Membre</label>
          <div class="col-sm-10">
          <select id="inputState2"  class="form-control form-control-sm" name="amis">
            <option selected="" disabled="">Choisir...</option>
            <?php
                foreach($amisComission as $unAmis){ ?>
            <option value=<?php echo $unAmis['NUMAMIS']; ?> ><?php echo $unAmis['NOMAMIS']; echo " "; echo $unAmis['PRENOMAMIS'];?></option>
            <?php }?>
          </select>
          </div>
        </div>
        </div>
        <div class="d-flex justify-content-center">
        <button type="submit" class="btn btn-primary"  class="form-control form-control-sm"name="Ajouter" value="Ajouter">Inscrire</button>
        </div>
     
     
    </form>
    <?php
    $content = ob_get_clean();
    require_once('vue/_template/template.php');
    ?>
    et la table repartir ou il faut vérifier :

    Nom : Capture.PNG
Affichages : 82
Taille : 11,5 Ko

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Points : 168
    Points
    168
    Par défaut
    Bonjour Robert-dev.

    Je ne comprends pas tout a ton projet, notamment l'histoire de la commission avec plusieurs commission ?? enfin bref c'est pas un probleme. Du coup, "si je peux me permettre", j'ai re-arranger ton code suivant l'architecture MVC, par contre tu va devoir terminer le travail (en supposant que ca te convienne, et t'aide a terminer ton code) car vu que je ne comprends pas tout, il y a des trous.....

    1.ta feuille fonction (fonction.php), c'est ton model (code metier) : deja tres bien, j'ai juste groupe la fonction verifAmis et inscription, et renvoyer une exception en cas de probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
        require_once ("include/class_pdo_amis.php");
     
        class class_pdo_equipe10 extends PdoGsb{
     
            function get_amis(){
                $reqGetAmis = 'select * from amis';
                $getAmis = $this->monPdo->query($reqGetAmis);
                $ligneAmis = $getAmis->fetchAll();
                return $ligneAmis;
     
            }
     
               function get_commission(){
                $reqGetCommission = 'select * from comission';
                $getCommission = $this->monPdo->query($reqGetCommission);
                $ligneComission = $getCommission->fetchAll();
                return $ligneComission;
            } 
     
     
            function get_repartir(){
                $reqGetRepartir = 'select * from repartir ';
                $getRepartir = $this->monPdo->query($reqGetRepartir);
                $ligneRepartir = $getRepartir->fetchAll();
                return $ligneRepartir;
            }
     
     
            function verifAmis($amis, $comission){
                $reqverif = "SELECT COUNT(*) AS nbr FROM repartir WHERE NUMCOMISSION ='$comission' AND NUMAMIS ='$amis'";
                //$reqverif2 = mysql_fetch_array($reqverif);
                if ($reqverif['nbr'] == 0 ){
                    return function inscription($amis , $commission)
                } else {
                    throw new MyExceptionComments ('ce nom existe deja');
                }
     
            }
     
            function inscription($amis , $commission){
                       $req3 = "INSERT INTO repartir values ($amis , $commission , '')";
                       $res3 = $this->monPdo->exec($req3);
     
                       return $messErr = 'votre nom a bien ete enregistre';
            }
     
            function get_actionComission($comission){
                       $req4="SELECT * FROM action INNER JOIN comission ON action.NUMCOMISSION = comission.NUMCOMISSION where comission.NUMCOMISSION = '$comission'";
                       $res4 = $this->monPdo->query($req4);
                       $connect = $res4->fetchAll();
                       return $connect;
               }
        }
    ?>
    2.ton controler (index.php). c'est sur cette feuille que le visiteur atterit a la connection: ici j'ai mis la partie commande de ton script dans un try{} et un catch{} qui recupere les exceptions. c'est ici que tu vas devoir completer avec le truc de tes differentes commissions.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    try{
    //on met tout ds un try afin de gerer les erreur, tu connais deja je devine.
      require('fonction.php');//on insert la feuille des fonctions
     
      $bureauComission = $pdo->get_commission();
     
      $amisComission = $pdo->get_amis();
     
      //si le visiteur valide le formulaire, cette commande s'active, puis retour a l'acceuil.
      if(isset($_POST['Ajouter']))
      {  
        $pdo->function verifAmis($_POST['amis'], $_POST['comission']);
     
        require('acceuil.php');
      }
      //si tu as d'autre condition/option, tu mets ici
      elseif{}
      //si le visiteur vient d'arrive sur la page, on le dirige sur l'acceuil
      else
      {
        require('acceuil.php');
      }
    }
     
    //si il y a le moindre pb dans n'importe quelle action precedente, on recupere l'exception (on lui affiche le message via la variable) et on le renvoie sur la page d'acceuil
    catch(Exception $e)
    {
     
      $messErr = $e->getMessage();
     
      require('acceuil.php');
    }
     
     
    ?>
    3.la partie vue (que j'ai nomme acceuil.php): ne fait que afficher ce que le visiteur doit voir, j'ai juste rajouter le message d'erreur.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    //ici c'est ta page d'acceuil
    ob_start();
     
     
    $title="Inscription à une comission";
    $css="";
     
    ?>
    <h1> Saisie du bureau de la Commission</h1>
    <form method="post" action="index.php" >
    <div class="d-flex justify-content-center">
        <div class="form-group col-md-4">
     
          <p><?php
          //ici on renvoie le message (quel qu il soit) au visiteur.
          if(isset($messErr))
            {
              echo 'attention !!! ' .$messErr;
            }
            ?>
          </p>
     
            <label for="inputState"  class="col-sm-2 col-form-label">Comission</label>
            <div class="col-sm-10">
     
     
            <select id="inputState"  class="form-control form-control-sm" name="comission" >
              <option selected="" disabled="" required="">Choisir...</option>
              <?php
              foreach($bureauComission as $unBureau){?>
                <option value=<?php echo $unBureau['NUMCOMISSION'];?>><?php echo $unBureau['NOMCOMISSION']; ?></option>
              <?php } ?>
            </select>
     
            </div>
        </div>
     
        <div class="form-group col-md-4">
     
          <label for="inputState2"  class="col-sm-2 col-form-label">Membre</label>
          <div class="col-sm-10">
     
          <select id="inputState2"  class="form-control form-control-sm" name="amis">
            <option selected="" disabled="">Choisir...</option>
            <?php
                foreach($amisComission as $unAmis){ ?>
            <option value=<?php echo $unAmis['NUMAMIS']; ?> ><?php echo $unAmis['NOMAMIS']; echo " "; echo $unAmis['PRENOMAMIS'];?></option>
            <?php }?>
          </select>
     
     
     
        </div>
        </div>
        </div>
        <div class="d-flex justify-content-center">
        <button type="submit" class="btn btn-primary"  class="form-control form-control-sm"name="Ajouter" value="Ajouter">Inscrire</button>
        </div>
     
     
    </form>
    <?php
    $content = ob_get_clean();
    //le template sert juste a mettre en page avec html, histoire de n'avoir qu'une seule mise en page (donc facilement modifiable et pas de repetition de code). mais en fait dans ton cas il n y en pas besoin car tu n'as qu un seul acceuil (fichier affichage, souvent on en met plusieurs=>suivant ce qu on veut afficher). 
    require_once('vue/_template/template.php');
    ?>
    En esperant que cela t'aide un peu.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    J'ai réussit à faire fonctionner la fonction en modifiant quelques trucs tout fonctionne maintenant . Merci beaucoup ^^

Discussions similaires

  1. vérifier l'existence d'une fonction
    Par maximenet dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/07/2006, 12h02
  2. Réponses: 5
    Dernier message: 29/03/2006, 14h55
  3. Fonction "Vérifier les noms" dans Outlook
    Par vciofolo dans le forum Access
    Réponses: 2
    Dernier message: 15/03/2006, 08h35
  4. Réponses: 7
    Dernier message: 05/01/2006, 01h06
  5. vérifier l'existance d'une table dans une base de donnée
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/10/2005, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo