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 :

[Conception] Insertion de données sans doublon


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut [Conception] Insertion de données sans doublon
    Bonjour à tous.
    Voilà j'ai un formulaire d'enregistrement où j'ai instauré un système permettant d'ajouter un enregistrement dans une table connexe si la personne qu'on veut sélectionner n'est pas dans la liste.Voir mon screenshot
    Nom : screenshot.JPG
Affichages : 211
Taille : 11,8 Ko

    Ce qque j'aimerais, c'est que lorsque j'utilise les 2 champs pour faire un nouvel enregistrement j'aimerai y mettre un code pour gérer les doublons c'est a dire que la personne rentre un nom mais ce nom est déjà présent dans la base de données alors au lieu de mettre un message d'erreur je prefere que le nom soit pris dans la base pour éviter un doublon.
    Ai je été assez claire? Pouvez vous m'aider ?
    Je vous laisse le code de validation qui est en place actuellement
    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
    if ($_POST["nom_pers"]!="")//si le champ nom_pers n'est pas vide
    {
     
    	$nom_pers=addslashes($_POST["nom_pers"]);
    	$pre_pers=$_POST["pre_pers"];
    	$num_pers=$_POST["num_pers"];
    	$sqlpers="INSERT INTO personnes_tiers(num_pers,nom_pers,pre_pers)
    	VALUES('','$nom_pers','$pre_pers')";//nouvelle entrée dans la table personnes_tiers
    	mysql_query($sqlpers);
    	$num_pers=mysql_insert_id();}
     
    }
     
    else{
     
     
    		$num_pers=$_POST["numpers"];//sélection d'un nom déjà enregistré
    		}

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Avant de faire ton insertion, fais un select pour savoir si le nom n'existe pas déjà dans la table, et agit en conséquence.
    Une petite remarque de conception. Je pense que c'est un peu dangereux de mettre insertion et sélection dans le même formulaire. Tu risques de laisser passer des "faux doublons", qui ont très peu de différences. Exemple : Stéphane != Stephane, Dupond != dupont...
    Est-ce que ce ne serait pas plus sûr de faire 2 formulaires :
    1) Sélection dans la liste. Si absent => bouton vers 2e formulaire (ou popup...)
    2) 2e formulaire => insertion dans la base.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    C'est pour cela que je veux mettre un code qui permet d'éviter les faux doublons en comparant ce qui est entré dans le champ avec ce qui est deja présent.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut
    2 pistes
    - 1 tu met ton champ en indexe unique ( mysql)(quoique vu que c'est une chaine ce n'est pas terrible)
    - 2 tu fait un select sur le champ et si il n'existe pas c'est bon

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    tu peux faire un select sur ta table avec comme critère le nom saisi par l'utilisateur. tu essai de voir si le select a un resultat sinon c'est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
         $rs=mysql_query("select * from matable where nom='".$_POST['nom']."'") or die mysql_error();
        if (mysql_num_rows==0){
            //c'est bon pas de doublons    
        }else{
             //afficher message d'erreur
        }
    ?>

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Merci pour votre aide c'est sympa, mais j'ai pas l'impression que ayez compris ce que je veux exactement. Pour reprendre le code laissé par ouatmad, ce que je veu c'est qu'au lieu d'afficher un message d'erreur si il y a doublon, voir si ce qui a été entré par l'utilisateur correspond à une donnée déjà entré alors si y a correspondance, récuperer le nom déjà enregistré.

Discussions similaires

  1. [AC-2010] Requête Action Mise à jour des données sans doublons
    Par macakou99 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/09/2012, 17h07
  2. extraction d'une liste de données sans doublons et triées
    Par lps02 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/04/2012, 22h51
  3. [XL-2003] Exporter une liste de données sans doublons après un filtre sur une deuxième feuille
    Par mandrake57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/07/2011, 13h36
  4. créer une série de chiffre aléatoire dans une plage donnée, sans doublon
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 02/07/2008, 10h02
  5. Insertion de donnée sans dataset
    Par b_lob dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/01/2008, 18h45

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