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

PHP & Base de données Discussion :

Vérification de doublons avant insertion [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut Vérification de doublons avant insertion
    Bonjour,

    Je suis dégouté car je veux faire un truc trop simple et j'ai essayé 40 combinaison et je n'y arrive pas !!!

    Donc je voudrais vérifié la présence d'une adresse mail avant de l'ajouté dans la base de donnée.

    Si l'adresse exist j'ouvre MailExist.php sinon AjoutOK.php

    Voilà ou j'en suis !!! (Sans m'occuper des pages à ouvrir

    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
    <?php 
     
    $default = array(); 
    $default['txtMail'] = isset($_POST['txtMail'])?$_POST['txtMail']:'';
     
     
    if (isset($_POST['cmdEnvoyer'])) { 
        require_once('TestFormulaire.php'); 
     
        // Register the subclasses to use 
    	$v['e']  = new ValidateEmail($_POST['txtMail']); 
     
        $errorMsg = ''; 
        // Perform each validation 
        foreach($v as $validator) { 
            if (!$validator->isValid()) { 
                while ($error=$validator->getError()) { 
                    $errorMsg.="<li>".$error."</li>\n"; 
                } 
            } 
        } 
        if ($errorMsg != '') { 
            print ("<div style='color:red'>".$errorMsg."</div>"); 
        } else { 
    		$Mail = $_POST['txtMail']; 
     
    ob_start();
    $db=mysql_connect("***","****","****");
    mysql_select_db("*****",$db);
    $sqlSelect="Select email from `pmnl_email` where email=\'$Mail'" or die("Erreur :".mysql_error());
     
    if ($resultSelect=mysql_query($sqlSelect)){
    	while($Exist=mysql_fetch_row($ResultSelect)){
    		echo ("MAIL EXISTANT");}
    }else{
    	$sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
    	$result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_errir());
    }
     
    ob_end_flush();
    	}   
    }
     
    ?>
    Merci de ne pas rire !!!

    merci

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    première chose, enlève les ob_
    Ca ira mieux pour débugger

    Ensuite, regarde bien cette ligne, tu ne trouve pas qu'il y a un ch'tit problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sqlSelect="Select email from `pmnl_email` where email=\'$Mail'" or die("Erreur :".mysql_error());

  3. #3
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    si tu as corrige l'erreur de ta ligne $sqlSelect, pourquoi faire cela?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       while($Exist=mysql_fetch_row($ResultSelect)){
          echo ("MAIL EXISTANT");}
    au passage tu as une erreur tu fait un fetch_row sur $ResultSelect alors que c'est sur $resultSelect que tu devrais le faire
    fais plutot cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       if  (mysql_num_rows($resultSelect) == 1) {
          echo ("MAIL EXISTANT");}
    si mysql_num_rows == 1 alors ton mail existe deja
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par Mr N.
    Ensuite, regarde bien cette ligne, tu ne trouve pas qu'il y a un ch'tit problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sqlSelect="Select email from `pmnl_email` where email=\'$Mail'" or die("Erreur :".mysql_error());
    Manque un mysql_query() pour executer ta requete...
    Normal ke ca s'arrete sur le die ^^

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Comme ça ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($resultSelect=mysql_query($sqlSelect)){
    if  (mysql_num_rows($resultSelect) == 1) { 
          echo ("MAIL EXISTANT");} 
    }else{
    	$sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
    	$result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_errir());
    }
     
     
    	}   
    }

  6. #6
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    oui comme cela
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  7. #7
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par yiannis
    oui comme cela
    Ca marche pas !!!

    Pas de test ni d'insert

  8. #8
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    pas d'erreur non plus ?
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  9. #9
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par yiannis
    pas d'erreur non plus ?
    Non, la page se recharge !!! C'est tout

  10. #10
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    pourquoi fais tu un if sur ton mysql_query ?
    fais plutot comme cela (pense a indenter ton code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $resultSelect=mysql_query($sqlSelect) OR die('Erreur de SQL !<br>'.mysql_error()); 
    if  (mysql_num_rows($resultSelect) == 1) {
          	echo ("MAIL EXISTANT");
    }else{
       $sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
       $result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_error());
    }
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  11. #11
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par yiannis
    pourquoi fais tu un if sur ton mysql_query ?
    fais plutot comme cela (pense a indenter ton code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $resultSelect=mysql_query($sqlSelect) OR die('Erreur de SQL !<br>'.mysql_error()); 
    if  (mysql_num_rows($resultSelect) == 1) {
          	echo ("MAIL EXISTANT");
    }else{
       $sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
       $result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_error());
    }
    Là ca insere mais ce ne verifie pas les doublons !!!

    Merci

  12. #12
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    fais un echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $resultSelect=mysql_query($sqlSelect,$db) OR die('Erreur de SQL !<br>'.mysql_error());
    echo "[[[[[".mysql_num_rows($resultSelect)."]]]]]";
    //if  (mysql_num_rows($resultSelect) == 1) {
    //         echo ("MAIL EXISTANT");
    //}else{
    //   $sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
    //   $result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_error());
    //}
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  13. #13
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par yiannis
    fais un echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $resultSelect=mysql_query($sqlSelect,$db) OR die('Erreur de SQL !<br>'.mysql_error());
    echo "[[[[[".mysql_num_rows($resultSelect)."]]]]]";
    //if  (mysql_num_rows($resultSelect) == 1) {
    //         echo ("MAIL EXISTANT");
    //}else{
    //   $sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
    //   $result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_error());
    //}
    Là j'ai bien le nombre d'enregistrement detecté !!

    tt@tt.tt = 0
    aa@aa.aa = 6

  14. #14
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    ok alors comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $resultSelect=mysql_query($sqlSelect,$db) OR die('Erreur de SQL !<br>'.mysql_error());
     
    if  (mysql_num_rows($resultSelect) != 0) {
             echo ("MAIL EXISTANT");
    }else{
      $sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
       $result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_error());
    }
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  15. #15
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par yiannis
    ok alors comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $resultSelect=mysql_query($sqlSelect,$db) OR die('Erreur de SQL !<br>'.mysql_error());
     
    if  (mysql_num_rows($resultSelect) != 0) {
             echo ("MAIL EXISTANT");
    }else{
      $sql="INSERT INTO `pmnl_email` (email, list_id) VALUES ('$Mail', 1)";
       $result=mysql_query($sql) OR die('Erreur de SQL !<br>'.mysql_error());
    }
    MERCI beaucoup !!!

    @ bientôt

  16. #16
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    bon developpement
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/03/2012, 11h53
  2. Réponses: 9
    Dernier message: 28/10/2008, 21h30
  3. Vérification d'existence du tuple avant insertion
    Par Juliana dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 11/06/2008, 16h12
  4. [MySQL] vérification existance avant insertion
    Par LaGazelle dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/05/2008, 18h13
  5. [MySQL] Vérification de la présence d'enregistrement avant insertion
    Par Odilon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/09/2005, 15h30

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