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 :

Comment eviter la duplication


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut Comment eviter la duplication
    Bonjour,

    Je suis nouveau en dev!
    J'ai un site d'inscription qui fonctionne très bien !
    Il utilise PHP/MYSQL. Mon problème est que les mêmes données peuvent être enregistrées sans message d'erreur!!
    Par exemple si "alexandre" a été déjà enregistré, il n'y a pas de message d'erreur pour un nouveau enregistrement "alexandre".
    Quelqu'un peut-il m'aider ? Voici mon code :

    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
    <?php
    $con = mysql_connect("localhost","root",""); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db("identity", $con); 
    $name=mysql_real_escape_string($_POST['name']); 
    $email=mysql_real_escape_string($_POST['email']);
    $sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')";
     
    name and email are the respective table fields*/
    if (!mysql_query($sql,$con)) {
     die('Error: ' . mysql_error()); 
    } 
    echo "The form data was successfully added to your database."; 
    mysql_close($con);
    ?>

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    salut,

    tes contraintes d'intégrités de ta talbe sont-elles correctes ? (clé primaire/étrangère primary key/foreign key)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut Comment eviter la duplication ?
    Oui, le script tourne bien.Mais seulement des donnees identiques peuvent etre enregistrees .Comment eviter cela ? Voici un exemple:

    1 ,julien,comptable
    2,julien,comptable

    Je souhaite que la nouvelle ligne ne passe si elle est deja existante.

  4. #4
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    bah, fais une clé primaire composée.
    ta clé primaire sera composé de l'id, du prénom et de la fonction(comptable)
    ainsi plus de duplications possibles
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Membre chevronné Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Par défaut
    slt...

    index "unique" sur les colonnes que tu veus...

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Pouvez vous me guidez avec une portion de script ?
    Voici mon code :
    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
    <?php
    $con = mysql_connect("localhost","root",""); 
     
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db("identity", $con); 
     
    $name=mysql_real_escape_string($_POST['name']); 
     
    $email=mysql_real_escape_string($_POST['email'
     
    $query = "SELECT * FROM form_data WHERE name = '$name' And email = '$email'" ;
     
    $result = mysql_query($query);
     
    if (mysql_fetch_row($result))
     
    echo "already registred !!!";
     
    else 
    $sql="INSERT INTO form_data (name,email) VALUES ('$name','$email')"; 
     
     
    if (!mysql_query($sql,$con)) {
     die('Error: ' . mysql_error()); 
    } 
    echo "successfull registration !."; 
    mysql_close($con);
    ?>

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    L astuce de l index unique marche !!!!!!!!!!!!

    Merci mais le message ne me plait pas :
    # Error: Duplicate entry 'kofiw' for key 2 #

    je souhaite avoir :

    #vous etes deja inscrit ! #

  8. #8
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Bonjour, bon si tu ne veux pas de messages d'erreur, tu fais d'abords une requête de sélection pour voir est ce que le nom existe déja et s'il existe tu affiche un message personnalisé, c'est ce que je fais moi.

  9. #9
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!mysql_query($sql,$con)) {
     die('Error: Vous etes deja membre'); 
    }
    C'est risqué pour les autres erreurs en meme temps je suis pour le fait de montrer les erreurs sql aux visiteurs donc a la limite c'est plutot pas mal lol
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

Discussions similaires

  1. Listing -> BDD - Comment eviter les duplicates key
    Par JavaMan77 dans le forum JPA
    Réponses: 0
    Dernier message: 11/05/2011, 23h06
  2. Comment Eviter les Duplications dans la ComboBox ?
    Par Hellgast dans le forum C++Builder
    Réponses: 4
    Dernier message: 22/03/2009, 13h00
  3. Comment eviter de dedoubler projet c++ et projet java/applet
    Par buzzz dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 13/10/2004, 13h02
  4. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04
  5. [opengl] Comment eviter l'ordre de faces ?
    Par :GREG: dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2004, 19h14

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