Page 1 sur 1

Ecrire des champs dans plusieurs tables en un fois

Posté : 14 mars 2011, 11:55
par jacfev
Bonjour,

Je dois copier des champs d'une table dans 3 autres tables.
J'ai une table source nommée devis avec les champs codearticle, designation, prix, machine, codeclient.
Une 1ère table cible nommée articles avec les champs codearticle, designation, prix, machine, codeclient_id.
Une 2ème table cible nommée societes avec les champs machine, codeclient, nom.
Une 3ème table cible nommée inscrits avec les champs login machine, email, motpasse, codeclient_id, date.

J'effectue la connexion à la base et je lance ma requête:
$idcnx = mysql_connect($hote, $user, $pass);
mysql_select_db($base, $idcnx);
//je récupère les données et les copie dans la table articles
$sql = "INSERT INTO articles(codearticle,designation,prix,machine,codeclient_id)
SELECT codearticle,designation,prix,machine,codeclient FROM devis";
C'est OK pour la copie dans la table articles

Mais comment modifier la requête pour écrire également:
- les champs machine, codeclient dans la table societes
- et les champs machine, codeclient_id dans la table inscrits

Cordialement
Jacques.

Re: Ecrire des champs dans plusieurs tables en un fois

Posté : 14 mars 2011, 13:57
par xTG
Ta structure n'est pas claire.
Qu'est ce qui est clé et qu'est ce qui ne l'est pas ?
Tes trois tables sont-elles vides ou pleines ?

Re: Ecrire des champs dans plusieurs tables en un fois

Posté : 14 mars 2011, 17:14
par jacfev
J'ai trouvé
En plus de la requête j'ajoute 2
$sql = "INSERT INTO ...

pour éviter d'insérer un doublon d'index unique je mets IGNORE.