Ecrire des champs dans plusieurs tables en un fois

Eléphant du PHP | 65 Messages

14 mars 2011, 11:55

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.

ViPHP
xTG
ViPHP | 7331 Messages

14 mars 2011, 13:57

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 ?

Eléphant du PHP | 65 Messages

14 mars 2011, 17:14

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.