Page 1 sur 1

pb de maj de tables lors d'un insert

Posté : 23 déc. 2005, 11:53
par karanka
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.

Posté : 23 déc. 2005, 11:57
par Cyrano
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

Posté : 23 déc. 2005, 12:09
par Invité
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 ?

Posté : 23 déc. 2005, 12:20
par Cyrano
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);
//...
?>

Posté : 23 déc. 2005, 13:15
par Invité
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.