Probleme de doublons

Résolu
Bonjour à tous j'ai un problème de doublons que je n'arrive pas avoir l'erreur pourriez vous me donner un coup de main svp et j'ai les photos qui ne s'affiche pas (juste des petits carrés) voici le code
<?php
  
if(!empty($_POST['ajouter'])) {
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $cont=$_POST['phone'];
    $contact2=$_POST['contact2'];
    $email=$_POST['email'];
    $sexe=$_POST['sexe'];
    $lieu_habita=$_POST['lieu_habita'];
    $numpiece=$_POST['numpiece'];
    $nomphoto=$_FILES['photo']['name'];
     $matricule=$_POST['matricule'];
      
    require_once('bdconnexion.php');
    //pour plus de lisibilité => attention à l'espace en fin de chaine
    $query="SELECT nom_auditeur,prenom_auditeur,telephone_1_auditeur,telephone_2_auditeur,email_auditeur,sexe_auditeur,lieu_habitation,numero_piece,photo_auditeur,Matricule_auditeur ";
    $query.="FROM auditeur ";
    $query.="WHERE nom_auditeur='".$nom."' ";
    $query.="AND prenom_auditeur='".$prenom."' ";
    $query.="AND telephone_1_auditeur='".$cont."' ";
    $query.="AND telephone_2_auditeur='".$contact2."' ";
    $query.="AND email_auditeur='".$email."' ";
    $query.="AND sexe_auditeur='".$sexe."' ";
    $query.="AND lieu_habitation='".$lieu_habita."' ";
    $query.="AND numero_piece='".$numpiece."' ";
    $query.="AND photo_auditeur='".$nomphoto."' ";
    $query.="AND Matricule_auditeur='".$matricule."'";
 
    $send=mysql_query($query) or die(mysql_error());
    $nbre=mysql_num_rows($send);
    if($nbre !== FALSE && $nbre == 0){
        $req="INSERT INTO auditeur (nom_auditeur,prenom_auditeur,telephone_1_auditeur,telephone_2_auditeur,email_auditeur,sexe_auditeur,lieu_habitation,numero_piece,photo_auditeur,Matricule_auditeur)";
        $req .= " value ";
        $req .= "('$nom','$prenom','$cont','$contact2','$email','$sexe','$lieu_habita','$numpiece','$nomphoto','$matricule')";
        $envoi=mysql_query($req) or die(mysql_error());
        //IF facultatif, car l'insertion s'est bien pass&ée
        if ($envoi !== FALSE) {
            //Deplacement fichier seulement si insertion OK
            echo "nouveau auditeur ajout&eacute";
            $file_tmp_name=$_FILES['photo']['tmp_name'];
            move_uploaded_file($file_tmp_name,"./images/$nomphoto");
        }
    } else {
        echo "cet auditeur s'est d&egravej&agrave inscrit";    
    }
}
?>

11 réponses

  1. j'ai trouvé mes erreurs c’était ma BD qui ne correspondait pas !! merci encore
    1. Modérateur
      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
  2. ok j'essaye
    1. Modérateur
      Et surtout .... commence par tester tes requêtes DIRECTEMENT DANS TA BDD avant d'essayer de les mettre dans ton code php
  3. voila
    1. Modérateur
      dis donc ...
      tu m'as répondu

      oui j'ai un résultat mais quand je remet les memes info il accepte

      dans un précédent message .....
      mais .... là .... ... et bien... on est d'accord .... ta requête NE RETOURNE AUCUN RESULTAT !
      Donc c'est normal qu'il fasse une insertion !!!!

      Non ???!!!!
    2. @jordane45lol j'avais pas bien compris dans ce cas je fais quoi
    3. Modérateur
      @delavega470Est-ce qu'il y a des informations dans ta BDD ??
      Si oui... commence par faire ce que je t'ai proposé dans un message précédent ..... NE METS PAS AUTANT DE CHOSES DANS TON WHERE !
      Limite ta requête sur l'adresse mail par exemple.
  4. je n'arrive pas coller l'imprime ecran
    1. Modérateur
      lorsque tu fais "répondre" surle fourm .... tu cliques sur l'icone image qui se trouve en haut ....
  5. 1.resultat du echo $query
    SELECT nom_auditeur
               ,prenom_auditeur
               ,email_auditeur
               ,sexe_auditeur
               ,Matricule_auditeur 
    FROM auditeur 
    WHERE nom_auditeur='kouakou' 
      AND prenom_auditeur='franck' 
      AND email_auditeur='kouakou@yahoo.fr' 
      AND sexe_auditeur='Homme' 
      AND Matricule_auditeur='201602101647-M'
    

    nouveau auditeur ajouté
    2.

    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici :ICI

    Merci d'y penser dans tes prochains messages.
    1. cela me retourne 0
      1. Modérateur
        C'est que ta requête ne retourne AUCUN résultat ... donc.. c'est normal qu'il créé une nouvelle ligne dans ta table.

        Mais..... si toi tu penses que ça ne devrait pas retourner 0 ... c'est qu'il y a un souci au niveau de ta requête.

        Donc :
        1 - Fais un echo de ta variable $query et colles nous le résultat sur le forum

        2 - Utilises le résultat de ce echo pour tester ta requête DIRECTEMENT dans ta BDD et regardes si elle retourne réellement quelque-chose ( un imprime-écran serait le bienvenue.... )
    2. oui j'ai un résultat mais quand je remet les memes info il accepte
       <?php
        
      if(!empty($_POST['ajouter'])) {
          $nom=$_POST['nom'];
          $prenom=$_POST['prenom'];
          $cont=$_POST['phone'];
          $contact2=$_POST['contact2'];
          $email=$_POST['email'];
          $sexe=$_POST['sexe'];
          $lieu_habita=$_POST['lieu_habita'];
          $numpiece=$_POST['numpiece'];
          $nomphoto=$_FILES['photo']['name'];
           $matricule=$_POST['matricule']; 
          require_once('bdconnexion.php');
          //pour plus de lisibilité => attention à l'espace en fin de chaine
          $query="SELECT nom_auditeur,prenom_auditeur,email_auditeur,sexe_auditeur,Matricule_auditeur ";
          $query.="FROM auditeur ";
          $query.="WHERE nom_auditeur='".$nom."' ";
          $query.="AND prenom_auditeur='".$prenom."' ";
          $query.="AND email_auditeur='".$email."' ";
          $query.="AND sexe_auditeur='".$sexe."' ";
          $query.="AND Matricule_auditeur='".$matricule."'";
          $send=mysql_query($query) or die(mysql_error());
          $nbre=mysql_num_rows($send);
          if($nbre !== FALSE && $nbre == 0){
              $req="INSERT INTO auditeur (nom_auditeur,prenom_auditeur,telephone_1_auditeur,telephone_2_auditeur,email_auditeur,sexe_auditeur,lieu_habitation,numero_piece,photo_auditeur,Matricule_auditeur)";
              $req .= " value ";
              $req .= "('$nom','$prenom','$cont','$contact2','$email','$sexe','$lieu_habita','$numpiece','$nomphoto','$matricule')";
              $envoi=mysql_query($req) or die(mysql_error());
              //IF facultatif, car l'insertion s'est bien passée
              if ($envoi !== FALSE) {
                  //Deplacement fichier seulement si insertion OK
                  echo "nouveau auditeur ajouté";
                  $file_tmp_name=$_FILES['photo']['tmp_name'];
                  move_uploaded_file($file_tmp_name,"./images/$nomphoto");
              }
          } else {
              echo "cet auditeur s'est dèjà inscrit";    
          }
      }
      ?>
      1. Modérateur
        Et si tu fais un echo de ta variable $nbre ... qu'est-ce que ça donne ?
    3. Modérateur
      Est-ce que tu as essayé de faire un ECHO de ta variable $query pour voir si la requête, testée DIRECTEMENT dans ta BDD, te retourne quelque chose ??

      au passage... dans le WHERE... je ne vérifierai que l'email (et éventuellement nom / prénom ) .... Là ... tu vérifies trop de choses.... il suffirait qu'il change de numéro de téléphone ou le nom de la photo... et là ... tu referais une insertion en BDD....

      1. en fait le code ne fait que des insertions même quand l’élément existe déjà et quand je fais afficher les infos dans une page tout apparaît sauf la photo juste un petit carré
        1. Modérateur
          Bonjour,

          Il te faudra être plus précis.....
          des doublons.... dans quoi ??? où ça ????
          les images ne s'affichent pas.... où ça ??? avec quel code ????

          Là tu ne nous a coller que le code d'insertion en BDD de ton formulaire...
          sans aucune autre explication ... impossible de te répondre.

          PS: tu utilises l'ancienne extension mysql .. je t'invite à lire ceci puis à en changer : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top