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

Résolu
Profil bloqué -  
 Profil bloqué -
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   Statut Membre Dernière intervention   25
 
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é
 
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