Page 1 sur 1

mettre a jour des tables dans des bases differentes

Posté : 26 nov. 2007, 06:49
par choubix
hello,

sur le site que je developpe les utilisateurs peuvent souscrire a 2 mailing lists:

- celle du site
- celle des annonceurs

la mailing list du site est de 2 ordres:
- emails "administratifs: (tenir informer le cietn sur son compte)
- emails direct (un peu plus marketing)

la mailing lsit annonceurs va etre geree avec Phplist dans une base de donnees separees de celle du site (mais sur le meme serveur)

je voulais savoir s'il y avait un moyen simple de mettre a jour les preferences des utilisateurs?


en bref:

pour les utilisateurs les emails viennent du site et ne font pas la difference entre le site et phplist.
pour moi ils sont envoyes depuis 2 moyens differents (et donc de tables /bases differentes)

lorsqu'un utilisateur voudra se desinscrire des emails envoyes ca pourra etre depuis un email envoye par le site OU par phplist.

aussi: comment faire en sorte que les tables / bases soit similaires? (je mettrais ca dans un cron execute tous les jours neanmoins je n'ai aucune idee de la methode a mettre en place)

si qq un pouvait m'aiguiller dans la bonne direction ca serait sympa!
merci

Posté : 27 nov. 2007, 18:53
par sadeq
Dans un même script PHP, tu peux orienter tes requêtes SQL (SELECT/INSERT/DELETE ou UPDATE) vers plusieurs bases de données sur le même serveur en ouvrant une seule connexion au serveur et en incluant le nom de la base ciblée comme préfixe des noms des tables utilisées.

Exemple:
//Connexion au serveur
mysql_connect("serverName", "userId", "password");

//Requête vers la base1
//exemple: sélection
$sql1 = "SELECT * FROM base1.table1";

//Requête vers la base2
//exemple: modification
$sql2 = "UPDATE  base2.table1 SET champ1='valeur1' WHERE condition1";

//Requête vers 2 bases : base1 et base2
//exemple: copie de la table1 de base2 vers base1
$sql3 = "INSERT INTO base1.table1 SELECT * FROM base2.table1"; 
//... etc.

//Exécution des requêtes
mysql_query($sql1);
mysql_query($sql2);
mysql_query($sql3);
//... etc.