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 :

recherche de doublons dans une table [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 15
    Points
    15
    Par défaut [Résolu] recherche de doublons dans une table
    Bonjour,

    Je voudrais faire un petit truc mais je ne sais pas trop comment le mettre en place; Je m'explique.

    J'ai un formulaire de saisie ou l'on renseigne nom et prénom.
    J'ai établi un script JS pour vérifier si les champs son vide ou pas.

    Maintenant ce que je cherche à faire c'est lorsque on clique sur le bouton envoyer du formulaire, je voudrais tester ma table de manière à voir si il existe déjà le même nom et prénom.

    Pour ce faire je passerai par une boîte de dialogue JS qui me demanderai:

    Attention , ce nom existe déja voulez vous quand même enregistrer le contact.

    L'utilisateur aurait le choix d'un oui, dans ce cas on crée enregistre quand même le champ dans le cas contraire on annule.

    J'ai déjà établi un système d'id pour différencier les champ de même nom et prénom.


    Si vous ne comprenez pas ma demande dites le moi j'essayerai d'expliquer plus finement .

    Merci d'avance pour vos réponses

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Bonjour,

    Si tu veux faire ca en JS, il te faut utiliser AJAX (fonctions JS) :
    - faire uen requete ajax (JS pour un script php
    - le script php teste si l'enregistrement existe deja dans la bdd et renvoie 'vrai' ou 'faux' ou ce que tu veux
    - ajax (JS) recupere la/les valeurs retournées et affiche ce qu'il faut dans ta boite JS.

    Z.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    ok,

    aurais-tu un exemple de fonction ajax JS ??

  4. #4
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    J'utilise prototype :
    http://www.prototypejs.org/api/ajax/request

    ou la fonction qui te conviendra le mieux :
    http://www.prototypejs.org/api/ajax

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    donc pour mon script php j'ai fait u truc du style:

    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
     
    <?php 
    session_start();									//démarrage d'une session
     
     
     
    include ('../fonctions/connexion.php');
    $nom = $_POST['nom'];		//récupération des champs du formulaire
    $prenom = $_POST['prenom'];					
     
    $compare ="select COUNT (*) TOTAL from CORRESPONDANT WHERE NOM like '".$nom."' AND PRENOM like '".$prenom."'";
     
    $connect = ociparse($ora_conn, $compare);  //connexion à la db
    oci_execute($connect);
     
    $row = oci_fetch_array ($connect);
     
    	if ($row['TOTAL'] != 0)
    		{ 
    		echo ' nom déja présent'; // en attente du script js
    		}
    ?>

    il me reste plus qu'a intégrer mon script AJAX et je vois pas trop comment le mettre ...

  6. #6
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Affect aussi uen valeur de retour si rien n'est trouvé :
    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
    <?php 
    session_start();									//démarrage d'une session
     
     
     
    include ('../fonctions/connexion.php');
    $nom = $_POST['nom'];		//récupération des champs du formulaire
    $prenom = $_POST['prenom'];					
     
    $compare ="select COUNT (*) TOTAL from CORRESPONDANT WHERE NOM like '".$nom."' AND PRENOM like '".$prenom."'";
     
    $connect = ociparse($ora_conn, $compare);  //connexion à la db
    oci_execute($connect);
     
    $row = oci_fetch_array ($connect);
     
    	if ($row['TOTAL'] != 0)
    		{ 
    		echo ' nom déja présent'; // en attente du script js
    		}
           else echo 0;
    ?>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function confirmation(nom, prenom) {
    	var url = encodeURIComponent('script.php?nom=' + nom + '&prenom=' + prenom); //url du script
     
    	new Ajax.Request(url, {
    		method: 'post', //methode pour passer les paramètres
    		onSuccess: function(transport) {
    			if (transport.responseText != 0) {//si nom et prenoms existent (retour de script.php différent de 0)
    				var conf = confirm('blabla'); //afficher la boite de confirmation
    				if (conf == true) alert('confirmation confirmée !'); //si confirmer faire qq chose
    				else (conf == false) alert('confirmation pas confirmée !'); //sinon faire autre chose
    				}
    		});
    	}

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Merci bcp,

    juste un truc pour bien que je comprenne ce que je fait .


    donc pour schématiser:

    J'ai mon formulaire dans la page
    AjoutCor.php
    avec déja une fonctions JS pour vérifier si certains champs sont vides

    J'ai mes script php dans la page
    module_ajout.php
    La page contient le script d'ajout sur DB et aussi le script de verification du nom et prénom.

    J'ai aussi un fichier
    verification.js
    ou se situe la vérification des champs.

    Pour moi il est logique de mettre le script ajax dans
    verification.js
    Aussi je doit indiquer dans le début du formulaire le nom de la fonction.
    est-ce que je peut faire u truc du style(en gras)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="modules/module_ajout.php" onsubmit="return verif_form(this), confirmation;"  id="formulaire">

    De ce fait, lors d'une action sur le bouton envoyer:


    Le script ajax récupère les données du script php et ainsi il affichera un message d'alerte.

    Est-ce que mon résonement est bon ?

  8. #8
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Tu ne peux pas ecrire : return 'bla', 'blo';
    Ceci est invalide.

    Ecrire : return 'bla'; alert('blo');
    la 2eme instruction ne sera pas executé, car le return va arreter l'execution du javascript dans le scope actuel, soit completement arreter l'execution du JS.

    Il faut que tu l'ajoute dans ta fonction verif_form.

    Ou que tu mettes ton script, il faudra qu'il soit chargé par ta page, et donc accessible lorsque tu l'appeleras.

    Montre moi ce que tu as essayé, ca sera plus facile de t'aider.

    Z.

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Voici la ligne de mon formulaire:

    Nom de la page : AjoutCor.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="page.php?mod=ajout_correspondant_recapitulatif" onsubmit="return verif_form(this);alert confirmation;"  id="formulaire">
    Voici ma page JS ce nommant verification.js avec mes deux fonctions

    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
    // Vérification des champs remplis du formulaire
     function verif_form(formul)
     {
    	if(formul.elements['nom'].value=="")
    	{
    		alert('Remplissez le champs Nom');
    		return false;
    	}
    		if(formul.elements['prenom'].value=="")
    	{
    		alert('Remplissez le champs Prénom');
    		return false;
    	}
    	else
    	{
    	return true;
    	}
    }
     
     
    function confirmation(nom, prenom) {
    	var url = encodeURIComponent('module_ajout.php?nom=' + nom + '&prenom=' + prenom); //url de ma page php ou se site la fonction de comparaison en php
     
    	new Ajax.Request(url, {
    		method: 'post', //methode pour passer les paramètres
    		onSuccess: function(transport) {
    			if (transport.responseText != 0) {//si nom et prenoms existent (retour de module_ajout.php différent de 0)
    				var conf = confirm('Correspondant déjà existant, le rajouter quand même ?'); //afficher la boite de confirmation
    				if (conf == true) alert('confirmation confirmée !'); //si confirmer faire qq chose
    				else (conf == false) alert('confirmation pas confirmée !'); //sinon faire autre chose
    				}
    		});
    	}
    }

    et voici ma fonction php dans la page module_ajout.php


    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
    <?php 
    session_start();									//démarrage d'une session
    include ('../fonctions/connexion.php');
    $_SESSION['id_user'];
     
    //------Fonction comparaison------\\
     
    $nom = $_POST['nom'];						//récupération des champs du formulaire
    $prenom = $_POST['prenom'];					
     
    $compare ="select COUNT (*) TOTAL FROM CORRESPONDANT WHERE NOM like '".$nom."' AND PRENOM like '".$prenom."'";
     
    $connect = ociparse($ora_conn, $compare);  //connexion à la db
    oci_execute($connect);
     
    $row = oci_fetch_array ($connect);
     
    	if ($row['TOTAL'] != 0)
    		{ 
    		echo 'nom déja présent <br />';
    		}
    	else echo 0;

    J'ai bien respecter ta syntaxe pour ajouter ma deuxième fonction dans le formulaire, mais quand j'exécute ma page de formulaire, le javascript ne marche plus, meme la verification des champs vides....

    Désolé, de t'embêter avec ça mais la j'ai vraiment du mal ^^.

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    C'est bon tout marche ^^, je te remercie de l'attention que tu a porté à mes questions

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

Discussions similaires

  1. Recherche de doublons dans une table
    Par Guispeed4262 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 12/09/2014, 15h20
  2. Recherche de doublons dans une table
    Par david71 dans le forum Access
    Réponses: 2
    Dernier message: 20/01/2008, 13h41
  3. recherche de doublon dans une table
    Par c+cool dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/01/2008, 13h29
  4. [pl-sql] Recherche de doublons dans une table
    Par tommey dans le forum Oracle
    Réponses: 1
    Dernier message: 08/11/2006, 22h53
  5. Recherche de donnee dans une table associée
    Par josoft dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/07/2003, 15h22

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