requête sur 2 bases

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requête sur 2 bases

par pierre » 12 janv. 2006, 11:29

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

par Ripat » 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?

par pierre » 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:

par Cyrano » 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

par rami » 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.

requête sur 2 bases

par pierre » 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: