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

Requêtes MySQL Discussion :

Clés secondaires sous PHPMyAdmin


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut Clés secondaires sous PHPMyAdmin
    Bonjour,

    Je suis actuellement confronté à un problème concernant les clés secondaires sous PHPMyAdmin...

    Je développe une application dans laquelle à l'inscription, un client rentre ses coordonnées qui sont stockées dans une table "client" et, automatiquement, un groupe est créé dans une table "groupe" pour l'utilisateur en question.

    Le problème est que je n'arrive pas à faire de relations entre les tables sous PHPMyAdmin. Hors, étant donné que je souhaite que le groupe créé porte l'identifiant du client en clé secondaire, cela est problématique...

    J'ai essayé ce code pour tenter de récupérer l'identifiant venant d'être créé :

    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
    /* Insertion des données dans les tables appropriées */
     
    			// Création du client
     
                $sql1 = "INSERT INTO clients VALUES('','".$siret."','".$societe."','".$adresse1."','".$adresse2."','".$cp."','".$ville."','".$tel_soc."','".$fax."','".$site."');";
                $req = mysql_query($sql1);
     
    			// Création automatique du groupe gestionnaire pour ce client
     
    			$tmp = "SELECT MAX(idClient) FROM clients;";
    			$tmp2 = mysql_query($tmp);
     
    			$sql2 = "INSERT INTO groupes VALUES('','Groupe 1','Groupe créé par défaut à l\'inscription','1','".$tmp2."');";
    			$req = mysql_query($sql2);
     
    			// Création du salarié gestionnaire par défaut de ce client
     
                $sql3 = "INSERT INTO salaries VALUES('','".$civilite."','".$prenom."','".$nom."','".$matricule."','".$service."','".$email."','".$pass."','".$tel_gest."','".$num_poste."','1','1','');";
                $req = mysql_query($sql3);
    Mais cela ne marche pas, l'identifiant de client attribué au groupe reste toujours à 0...

    Si quelqun pouvait m'aider sur ce point, ce serait sympa

  2. #2
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Par défaut pour la valeur de la clé : mysql_insert_id()
    Bonjour,
    dans ton code php, tu utilises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tmp = "SELECT MAX(idClient) FROM clients;";
    $tmp2 = mysql_query($tmp);
    pour récupérer la clé primaire de ton insertion précédente.. c'est un peu maladroit. Il existe une fonction php dédiée. Tu devrais faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $maCleSecondaire = mysql_insert_id();
    tu obtiendras directement la valeur du dernier autoincrement généré.

    Ensuite un vrai problème, tu n'exécutes pas ta requête pour récupérer la valeur, tu aurais du faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tmp = "SELECT MAX(idClient)   FROM clients;";
    $tmp2 = mysql_query($tmp);
    $truc=mysql_fetch_array($tmp2);
    $maCleSecondaire = $truc[0];
    puis ton insertion dans la seconde table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql2 = "INSERT INTO groupes VALUES('','Groupe 1','Groupe créé par défaut à l\'inscription','1','".$maCleSecondaire."');";
    ou en utilisant ma méthode (si l'identifiant du client est bien autoincrement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql1 = "INSERT INTO clients VALUES('','".$siret."','".$societe."','".$adresse1."','".$adresse2."','".$cp."','".$ville."','".$tel_soc."','".$fax."','".$site."');";
    $req = mysql_query($sql1);
    $maCleSecondaire = mysql_insert_id();
    $sql2 = "INSERT INTO groupes VALUES('','Groupe 1','Groupe créé par défaut à l\'inscription','1','".$maCleSecondaire."');";
    $req = mysql_query($sql2);
    pour conclure, ta valeur reste à 0 car tu ne récupère pas les valeurs de la requête dans la ressource $tmp2.

    et voilou.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut
    Bonjour,

    Effectivement, cela marche, je ne connaissais pas la fonction mysql_insert_id() qui va m'être bien utile !

    Merci pour ton aide aussi rapide, et au plaisir de se revoir

    @++

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

Discussions similaires

  1. Les clés externes sous phpmyadmin
    Par piotrr dans le forum Débuter
    Réponses: 1
    Dernier message: 11/06/2008, 11h58
  2. [EasyPHP] Pas de fonction importer sous phpMyAdmin sous EasyPHP 1.8 ??
    Par romca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/10/2006, 07h31
  3. Créer / Lire des clés registre sous Dev-Cpp
    Par N3odyme dans le forum Windows
    Réponses: 4
    Dernier message: 11/09/2006, 21h08
  4. Comment relier des tables sous PHPmyAdmin
    Par BigDavid dans le forum Débuter
    Réponses: 1
    Dernier message: 26/07/2006, 14h14
  5. [phpMyAdmin] impossible de créer un utilisateur sous phpMyAdmin
    Par snakejl dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 02/06/2006, 11h43

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