requête sur 2 bases

Eléphanteau du PHP | 32 Messages

11 janv. 2006, 19:24

Bonjour à tous,

j'ai un petit pb pour simplifier une requête sur 2 bases distinctes ...
fichier db_ouvre.php
<?
$db_1 = mysql_connect($serveur_local,$user_local,$pass_local) or die ("erreur de connexion");
mysql_select_db($bd_local,$db_1) or die ("erreur de connexion base");
$db_2 = mysql_connect($serveur_distant,$user_distant,$pass_distant,TRUE) or die ("erreur de connexion");
mysql_select_db($bd_distant,$db_2) or die ("erreur de connexion base");
?>
la (enfin les requêtes), 1 sur chaque base
<?
require "db_ouvre.php";
$req_test=mysql_query("select champ_1 from tbl_1 where ichamp='2'",$db_1);
	if (mysql_num_rows($req_test)!="0")
	{
		while($result_req_test = mysql_fetch_array($req_test))
		{
		echo $result_req_test['champ_1']."<br />";
		}
	}
$req_test=mysql_query("select champ_2 from tbl_2 where ichamp='2'",$db_2);
	if (mysql_num_rows($req_test)!="0")
	{
		while($result_req_test = mysql_fetch_array($req_test))
		{
		echo $result_req_test['champ_2']."<br />";
		}
	}
?>
Cela marche parfaitement, mais n'y a t-il pas une solution pour ne faire qu'une requête sur les 2 bases à la fois ?

merci d'avance de vos suggestions et lumières :wink:

Mammouth du PHP | 983 Messages

11 janv. 2006, 21:48

Tu ne peux pas faire cela en une requête car tes 2 bases sont hébergées sur 2 serveurs différents.

Mammouth du PHP | 19672 Messages

11 janv. 2006, 23:00

Quand bien même les deux bases seraient sur le même serveur, elles sont indépendantes et il faut deux connexions distinctes. Je doute fort qu'on puisse faire communiquer deux bases directement entre elles :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 32 Messages

12 janv. 2006, 09:57

merci de vos réponses

je continue malgré tout à chercher un truc du style
$req_test=mysql_query("select $db_1.tbl_1.champ_1, $db_2.tbl_2.champ_2 where $db_1.tbl_1.ichamp='2',$db_2.tbl_2.ichamp='2'");
je sais c'est tordu et ça ne marche pas :lol:

ViPHP
ViPHP | 1380 Messages

12 janv. 2006, 11:12

Quand bien même les deux bases seraient sur le même serveur, elles sont indépendantes et il faut deux connexions distinctes. Je doute fort qu'on puisse faire communiquer deux bases directement entre elles :-k
Si, si, c'est posssible en préfixant le nom des tables par le nom de la base de donnée:wink:

Code : Tout sélectionner

SELECT base1.tableA.col_a, base2.tableA.col_a FROM base1.tableA, base2.tableA
Tu ne peux pas faire cela en une requête car tes 2 bases sont hébergées sur 2 serveurs différents.


Exact. L'appel à la fonction mysql_query() demande un et un seul identifiant de connexion. Deux serveurs --> deux mysql_query()

Pierre -> Tu peux simplement fusionner les résultats des deux queries dans un tableau PHP non?
ripat

Eléphanteau du PHP | 32 Messages

12 janv. 2006, 11:29

merci, c'est la solution que je vais adopter je crois, faute de mieux ...