Comment créer une fonction de recuperation d'une clé primaire

Résolu/Fermé
Profil bloqué - 19 août 2013 à 10:38
 Profil bloqué - 22 août 2013 à 14:44
Bonjour,

je suis dans le besoin de savoir comment recuperer une clé primaire et l'enregistrer dans sa table automatiquement?
Mon probleme est celui-ci; j'ai deux tables à savoir:Beneficiaireet Parent alors que la circulation de l'information m'exige de commencer l'enregistrement sur la table Beneficiaire mais la clé primaire de la tableParent est une clé etrangere dans la table Beneficiaire ceci me pose un grand probleme car lors de l'enregistrement il y a une erreur qui se presente d'où je ne parviens pas à enregistrer dans la table beneficiaire.

Aide moi , je suis vraiment dans le besoin et Merci d'avance à toute personne qui va me venir à l'aide.

A voir également:

1 réponse

Anoen Messages postés 196 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 11 septembre 2013 25
20 août 2013 à 01:47
Bonjour,

Si tu reçois cette erreur c'est que ta conception est mauvaise. La "circulation de l'information" exige vraiment d'enregistrer un bénéficiaire avant parent ? Car si parent est une clé étrangère, l'enregistrement de parent doit être fait avant le bénéficiaire. SQL ne peut pas enregistrer une information qui n'existe pas.

Revois le parcours de tes données, c'est la seule chose à faire.
0
Profil bloqué
22 août 2013 à 14:44
Merci pour tes conseils mais je l'ai trouve par apres; l'erreur etait du de mauvais serveur car j'avais installé un EASYPHP12.0 à un certain moment parce que je l'ai conditionné de se demarrer ua demarrage de la machine alors le serveur a été corompu d'où la fonction ne fonctionné pas.
Voici la fonction que je vous demandez;
Les etapes à suivre:
1. Nous savons qu'il faut l'inserer à l'interieur du code php ou le créer appart mais moi j'ai preferé la premiere methode.
2. Lorsque vous voulez inserer les données dans la table d'une base de données, avant l'insertion dans la table secondaire, il faut d'abord recuperer la clé primaire de la table principale qui est la clé etrangere dans la table secondaire.
Code:

function getLastId($table, $pk) {
$sql = "SELECT ".$pk." from ".$table." order by ".$pk." desc limit 1";

$res = mysql_query($sql);

if($resultat = mysql_fetch_assoc($res)) {
return $resultat[$pk];
}
}

3. Confirmer cette fonction en envoyant dans la BD comme suit:
$req=mysql_query(); table principale
$id=getLastId(Nom_table, Clé_Primaire);
$req1=mysql_query("insert into Nom_table() values('','$id')"); table secondaire
0