Bonjour,

je vais essayer d'être le plus complet possible pour vous exposer mon problème.

j'ai deux bases de données sur le même serveur qui ont la même structure.

j'ai rédigé un script qui me permet de mettre à jour certain champs de certains enregistrements de certaines tables de la bases 2 si ceux ci sont différents de ceux de la bases 1. (vous me suivez ?!)

Jusque la tout va bien (et c'est déjà pas mal).

Ensuite suite si ces enregistrement sont absents de la base 2 je souhaiterai les insérer depuis la base 1.

je sais qu'une requête sous la forme

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO base2.table2 SELECT * FROM base1.table2 WHERE blablabla

serai idéale mais voila je coince car pas de problème entre deux tables d'une même base mais mes deux tables sont dans deux bases différentes.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php 
// Strict update base ES depuis FR
//info de connexion au deux bases.
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'username');
define('DB_SERVER_PASSWORD', 'motdepasse');
define('DB_DATABASE_FR', 'base1');
define('DB_DATABASE_ES', 'base2');
 
// Connexions au deux bases
$db_fr = mysql_connect(DB_SERVER , DB_SERVER_USERNAME , DB_SERVER_PASSWORD );
$db_es = mysql_connect(DB_SERVER , DB_SERVER_USERNAME , DB_SERVER_PASSWORD , true);
 
mysql_select_db(DB_DATABASE_FR, $db_fr);
mysql_select_db(DB_DATABASE_ES, $db_es);
 
//Recherche des enregistrements des produits actifs dans la base FR.
$query="SELECT * FROM products ORDER BY products_id ASC";
$result=mysql_query($query,$db_fr); 
while($datafr = mysql_fetch_assoc($result)) 
    {
    	//verification présence enregistrement identique dans la base ES
 
    	$query_es='SELECT * FROM products WHERE products_id="'.$datafr['products_id'].'"';    	
 
 
        $result_es=mysql_query($query_es,$db_es);
 
//si le produit existe dans la base ES on met a jour le stock et le prix
if (mysql_num_rows($result_es) != '0'){ 
 
// code qui marche et qui n'a aucun intérêt 
 
}
//sinon on ajoute le produit à la base ES.
else { 
 
$query_insert = 'INSERT INTO base2.products SELECT * FROM base1.products';
mysql_query($query_insert);
 
}
}
 
?>
quelqu'un aurait une idée pour la mise en forme de cette requête.