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 :

UPDATE SET et récupération de l'id concerné


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    étudiante
    Inscrit en
    Septembre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Septembre 2014
    Messages : 101
    Par défaut UPDATE SET et récupération de l'id concerné
    Bonjour,
    j'ai créé un formulaire de contact. Lorsque je retrouve le contact dans ma base de données, je remplace les anciennes informations renseignées par les nouvelles, ainsi ce membre possède touours le mm id. Si je ne le connais pas, je crée une nouvelle fiche contact avec un nouvel id.
    Comment je fais pour récupérer l'id d'un membre déjà existant???

    Voici ce que j'ai fait mais ca ne marche pas.
    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
     
    // On regarde si le contact existe déjà dans la base de données. 
    $req = $bdd->prepare('SELECT nom, prenom, date_naissance FROM adherents WHERE nom = :nom AND prenom = :prenom AND date_naissance = :naissance');
    			$req->execute(array(
    			':nom' => $_POST['nom'],
    			':prenom' => $_POST['prenom'],
    			':naissance' => $naissance_us));
    			$donnees = $req->fetch();
    			$req->closeCursor();
    			if ($donnees) {
     
    			// On remplace les anciennes informations par les nouvelles. 
    			$req1 = $bdd->prepare('UPDATE adherents SET telephone=:telephone WHERE nom=:nom AND
    			prenom=:prenom AND date_naissance=:naissance');
    			$req1->execute(array(
    			':telephone' => $_POST['telephone'],
    			':nom' => $_POST['nom'],
        		        ':prenom' => $_POST['prenom'],
    			':naissance' => $naissance_us));
    			$id = $donnees['id'];
    			$req1->closeCursor();
    $id en avant dernière ligne ne fonctionne pas.
    Merci d' avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Par défaut
    Bonjour,
    Tu fais un SELECT nom, prenom, date_naissance. Dans ta variable $données, j'imagine que tu as une valeur pour nom, une pour prenom et une pour date_naissance.

    Si tu veux sélectionner l'ID (<-- cette phrase donne un indice), il faut que tu ajoute ton champ dans ta requête.

  3. #3
    Membre confirmé
    Femme Profil pro
    étudiante
    Inscrit en
    Septembre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Septembre 2014
    Messages : 101
    Par défaut
    Ok mais l'ID est en auto-incrémentation, je ne vois donc pas quelle valeur lui attribué. j'ai fait ca mais ca ne marche pas dutout. Du coup il ne trouve pas le contact existant (alors qu'il existe déjà) et du coup il me créé tout simplement une nouvelle entrée avec un nouvel ID hors je veux l'ancien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req = $bdd->prepare('SELECT id, nom, prenom, date_naissance FROM adherents WHERE id= :id AND nom = :nom AND prenom = :prenom AND date_naissance = :naissance');
    $req->execute(array(
    	':id' => $id,
    	':nom' => $_POST['nom'],
    	':prenom' => $_POST['prenom'],
    	':naissance' => $naissance_us));
    $donnees = $req->fetch();
    $req->closeCursor();
    if ($donnees) {

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben si tu ne veux pas filtrer les résultats par rapport à l'id, pourquoi tu le mets dans la clause WHERE ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Femme Profil pro
    étudiante
    Inscrit en
    Septembre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Septembre 2014
    Messages : 101
    Par défaut
    Que je le mette dans le where ou pas ca revient au mm, je n'arrive pas à le récupérer cet id

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req = $bdd->prepare('SELECT id, nom, prenom, date_naissance FROM adherents WHERE nom = :nom AND prenom = :prenom AND date_naissance = :naissance');
    $req->execute(array(
    	':nom' => $_POST['nom'],
    	':prenom' => $_POST['prenom'],
    	':naissance' => $naissance_us));
    Sinon, essaye au moins d'afficher les erreurs.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [MySQL] Update SET erroné
    Par djinko dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 30/10/2006, 14h12
  2. [MySQL] Update SET
    Par djinko dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 29/03/2006, 14h47
  3. UPDATE * SET php/mysql
    Par Invité dans le forum Requêtes
    Réponses: 13
    Dernier message: 28/03/2006, 11h47
  4. [INTERBASE][UPDATE SET WHERE] problème de requete
    Par exclusif dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/03/2006, 21h10
  5. Réponses: 2
    Dernier message: 02/12/2005, 17h40

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