pb de maj de tables lors d'un insert

karanka
Invité n'ayant pas de compte PHPfrance

23 déc. 2005, 11:53

bonjour.
j'ai une bd composée de 3 tables.
table personnel (idp,nomp,prenomp,adp)
table article(numa,titrea,fichiera)
table publier(numa,idp)

j'au crée un formulaire pour inserer des infos mais je ne sais pas comment faire pour que lorsque je fais un insert du nomp et prenomp dans la table personnel et de titrea dans la table article ça mette aussi à jour idp et numa dans la table publier?????
Merci pour votre aide.

Mammouth du PHP | 19672 Messages

23 déc. 2005, 11:57

Il faut que lors de l'insertion dans les deux premières tables tu récupères l'identifiant généré avec mysql_insert_id() et que tu fasses ensuite une nouvelle insertion dans la triosième table. Enfin à condition que tu utilises MySQL. Précises si c'est un autre SGBD
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

23 déc. 2005, 12:09

oui j'utilise MySQL.
je vais donc faire 2 insert:
INSERT INTO `personnel` ( `idp` , `nomp` , `prenomp` , `adp` )
VALUES ( '', 'martin', 'jacque', 'paris' );
INSERT INTO `article`( `numa` , `titrea`) VALUES ( '', 'hello' );

Je viens de regarder la doc mais je sais pas trop faire!!!
Mais ensuite je fais comment avec mysql_insert_id() pour inserer les info dans publier ?

Mammouth du PHP | 19672 Messages

23 déc. 2005, 12:20

Schéma sommaire:
<?php
//...
/* Première requête */
$sql_1 = "INSERT INTO ....";
mysql_query($sql_1);
/* Récupération de l'identifiant généré */
$id1 = mysql_insert_id();
/* Seconde requête */
$sql_2 = "INSERT INTO ....";
mysql_query($sql_2);
/* Récupération de l'identifiant généré */
$id2 = mysql_insert_id();
/* Troisième requête */
$sql_3 = "INSERT INTO .... VALUES(". $id1 .", ". $id2 .")";
mysql_query($sql_2);
//...
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

23 déc. 2005, 13:15

Meric pour ton aide ça ne marche PRESQUE!!!
Lorsque je suis sur mon formulaire et que je renseigne mes champs, ça insere correctement les infos dans les tables personnel et article.
Par contre :
1) j'ia une erreur de type mysql_error(), j'ia essayé un select * from mysql_error() mais ça marche pas.
2) je constate que qd je valide mon formulaire j'ai bien une maj qui est faite via mysql_insert_id() dans la table publier mais je crois que ce n'est pas bon car les identifiants article.numa et publier.numa sont differents et personnel.idp et publier.idp sont aussi differents.