Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1822 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Des doublons se créent dans ma table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Des doublons se créent dans ma table

n°2301040
abdoulayec​oumba
Posté le 22-05-2017 à 13:14:08  profilanswer
 

Bonjour  
J’ai créé une table dans laquelle j’enregistre via un formulaire les données suivantes : « prenom » ,  « email » , et « age »
Pour les enregistrer dans la table, j’ai essayé au début de mon code de mettre quelques filtres, afin d’empêcher que les utilisateurs n’introduisent n’importe quoi dans ma table, jusque-là tout fonctionne nickel , ensuite dans une deuxième étape je vérifie d’abord si ce nouveau enregistrement se trouve déjà inscrit dans la table si tel est pas le cas je n’autorise pas l’enregistrement au cas contraire je l’autorise dans une troisième étape. Maintenant mon problème se situe au niveau de cette dernière étape c’est-à-dire que je me suis rendu compte que même si l’enregistrement existe déjà dans la table ceci n’empêche pas son enregistrement dans la table.
Voici mon code
 
<html >  
<body>  
 
 
<form action='validation_enregistrement_bd.php' method='POST'>
    Prénom :  
    <input type="text" name="prenom"/><br/>
    Adresse de messagerie :  
    <input type="text" name="email"/><br/>
    Âge :  
    <input type="INT" name="age"/><br/>
    <input type="submit" value="Envoyer"/>
</form>
 
<?php
   //Filtrer toutes les données du formulaire
 
$options = array(
 //Enlever les balises.
    'prenom' => FILTER_SANITIZE_STRING,
 //Valider l'adresse de messagerie.
    'email' => FILTER_VALIDATE_EMAIL,        
    'age' => array(
                                   'filter' => FILTER_VALIDATE_INT, //Valider l'entier.
                                   'options' => array(
                                                              'min_range' => 0 //Minimum 0.
                                                               )
                                  )
                          );
         
$resultat = filter_input_array(INPUT_POST, $options);
 
 
if($resultat != null)  
               
    { //Si le formulaire a bien été posté.
 
                     //Enregistrer des messages d'erreur perso.
                           
                             $messageErreur = array(
                             'email' => 'L\'adresse de messagerie n\'est pas valide.',
                             'age' => 'Veuillez entrer un nombre entier positif pour votre âge.'
                             );
 
                            $nbrErreurs = 0;
                           
         foreach($options as $cle => $valeur)  
       
       { //Parcourir tous les champs voulus.
 
                                    if(empty($_POST[$cle]))  
                        { //Si le champ est vide.
                                                  echo 'Veuillez remplir le champ ' . $cle . '.<br/>';
                                                  $nbrErreurs++;
                                             }
                                     elseif($resultat[$cle] === false)
                                             { //S'il n'est pas valide.
                                              echo $messageErreur[$cle] . '<br/>';
                                              $nbrErreurs++;
                                              }
                            }
                                 
         // Si les données saisies dans le formulaire respectent les formes exigées alors...
                                     if($nbrErreurs == 0)
 
                     {
             if ( isset( $_POST['prenom'] ))  
                                                   {  
     
                                                            $rechpren = $_POST['prenom'];
                                                            $rechadresse = $_POST['email'];
                                                            $rechage = $_POST['age'];
                   
                                                                    // On verrifie d'abord l'eventuelle existence de l'enregistrement dans la table  
                                                                 
                                                                     try  
                                                                          {  
                                                                              $bdd = new PDO('mysql:host=localhost;dbname=comptes','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));  
                                                                           }  
                                                                      catch(Exception $e)  
                                                                          {  
                                                                       die('Erreur : '.$e->getMessage());  
                                                                           }
 
 
                            // On récupère d'abord l'engistrement liee a la fiche du client dans la table ''clients''
 
                                                                     $req = $bdd->prepare('SELECT prenom,email,age FROM clients WHERE prenom= :prenom ');  
   
                                                                $req-> execute(array(
 
                                                                              'prenom'=> $rechpren ,
       
         
                                                                              ));
                            $count = $req->rowCount();
       
                                                  //On affiche chaque entrée une à une
 
 
                                                                     while ($donnees = $req->fetch())
 
                                                                  if($count> 0)
                                                             //         {
                                                           //             echo 'Ce client a ete deja enregistre';
                                                          //           }  
 
                                                                   // Si le client existe dans la table on affichera
                                                                             {
       
                                                                                 echo 'Ce client a ete deja enregistre';
                                                                                  echo $donnees['prenom'].'.......'.$donnees['email'].'........................'.$donnees['age'].'<br><br/>';
                         
                                                           }
 
                                                                     $req->closeCursor(); // Termine le traitement de la requête
 
                                                          }
            else
             
             // L'enregistrement n'existe pas dans la table on l'effectue
               try  
                                                                          {  
                                                                              $bdd = new PDO('mysql:host=localhost;dbname=comptes','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));  
                                                                           }  
                                                                      catch(Exception $e)  
                                                                          {  
                                                                       die('Erreur : '.$e->getMessage());  
                                                                           }
                     
                 {
               
                                 $req = $bdd->prepare('INSERT INTO clients (prenom, email,age) VALUES(:prenom, :email,:age)');
 
                                                                     $req->execute(array(
 
                                                                     'prenom' =>$rechpren ,
 
                                                                    'email' => $rechadresse,
               
                              'age' =>$rechage  
                                                                     ));
                                     
                   {
                                              echo 'Client enregistre';
                                  }
                   
                                                                    $req->closeCursor();  
 
               }
            }
   }  
else  
             {
                 echo 'effectuez votre premier enregistrement de cette session.';
             }
?>
</body>  
</html>
 
 
 
 

mood
Publicité
Posté le 22-05-2017 à 13:14:08  profilanswer
 

n°2301043
MaybeEijOr​Not
but someone at least
Posté le 22-05-2017 à 14:24:05  profilanswer
 

Bonjour, merci de mettre le code dans la balise correspondante car c'est illisible.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2301058
abdoulayec​oumba
Posté le 22-05-2017 à 15:44:47  profilanswer
 

Maybel je veux bien j'ai regardé dans le me,u de l'editeur de texte du forum mais je trouve pas de bouton prevu pour des balises

n°2301078
gatsu35
Posté le 23-05-2017 à 08:04:28  profilanswer
 

balise [code ] [/ code] (sans les espaces)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Des doublons se créent dans ma table

 

Sujets relatifs
Je voudrais sélectionner une ligne du tableauModification structure table, quid des vues ?!?
Id absolu et Id relatif dans la même table MySQLtable conversion en assembleur
Transférer le résultat des doublons sur un autre feuil ![Java] Arrêt traitement si doublons dans champ d'un fichier
[Perl] Arrêt traitement si doublons dans champ d'un fichierEliminer les doublons (résolu)
Applet affichant graphiquement une table de véritéLier les lignes d'une table
Plus de sujets relatifs à : Des doublons se créent dans ma table



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR