mettre a jour des tables dans des bases differentes

Eléphant du PHP | 319 Messages

26 nov. 2007, 06:49

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
niveau: pas terrible en php mais je me soigne...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

27 nov. 2007, 18:53

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.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène