Bonjour,

J'ai lu des centaines de topics franco et anglophones et... je n'ai pas trouvé ma solution. D'où mon appel au secours... avec beaucoup d'espoir

Car de tout ce que j'ai lu, je suis persuadé que ce je veux faire est très faisable: il s'agit de faire une requête sur 2 tables appartenant à des bases de données différentes (les 2 tables sont sur le même serveur, mais ont des utilisateurs et mot de passe différents).

Tous les articles proposent tous des syntaxes pour l'écriture de la requête SELECT; mais après...?? comment écrire le MYSQL_QUERY... comme si c'était évident (je dois passer à côté de qqch)

Ce que je sais faire:
me connecter simultanément aux 2 bases et faire des requêtes sur les 2 tables séparément:

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
 
$serveur = "localhost";
 
// --------connexion à la base 1
$utilisateur = "user1";
$mot_de_passe = "pw1";
$base_de_données1 = "base1";
$link1 = mysql_connect($serveur, $utilisateur, $mot_de_passe);
mysql_select_db($base_de_données1,$link1)  or die("Impossible de se connecter à 1".$base_de_données1);
 
// --------connexion à la base 2
$utilisateur = "user2";
$mot_de_passe = "pw2";
$base_de_données1 = "base2";
$link2 = mysql_connect($serveur, $utilisateur, $mot_de_passe,true);
mysql_select_db($base_de_données2,$link2)  or die("Impossible de se connecter à 2".$base_de_données2);
 
// requete sur la table 1
$sql_1="select * from table1_1 where MATRICULE='1111'";
$res_1=mysql_query($sql_1,$link1);
$ligne_1=mysql_fetch_array($res_1);
 
// listage sans problème des données issues de la requête 1
echo '<pre>';
print_r($ligne_1);
echo '</pre>';
 
// requete sur la table 2
$sql_2="select * from table2_1 where MATRICULE='2222'";
$res_2=mysql_query($sql_2,$link2);
$ligne_2=mysql_fetch_array($res_2);
 
// listage sans problème des données issues de la requête 2
echo '<pre>';
print_r($ligne_2);
echo '</pre>';
par contre, pour réunir les 2 tables par une jointure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
// jointure sur les 2 tables
$sql_jointure="select link1.table1.PRENOM, link2.table2.NOM,link2.table2.MATRICULE,link1.table1.MATR from table1 LEFT OUTER JOIN table2 WHERE link1.table1.MATR=link2.table2.MATRICULE";
$res_jointure=mysql_query($sql_jointure);
 
echo "<table border='1'><tr>";
while ($ligne_jointure=mysql_fetch_array($res_jointure))  {
	echo "<td>".$ligne_jointure[PRENOM]."</td>";
	echo  "<td>".$ligne_jointure[NOM]."</td>";
	echo  "<td>".$ligne_jointure[MATRICULE]."</td>";
	echo "</tr>";
}
echo "</tr></table>";
j'obtiens systématiquement une erreur lors de l'exécution de MYSQL_QUERY.
J'ai essayé d'autres syntaxes pour mon SELECT:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$sql_jointure="select table1.PRENOM, table2.NOM,table2.MATRICULE,table1.MATR from table1 LEFT OUTER JOIN table2 WHERE table1.MATR=table2.MATRICULE";
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$sql_jointure="select link1.PRENOM, link2.NOM,link2.MATRICULE,link1.MATR from table1 LEFT OUTER JOIN table2 WHERE table1.MATR=table2.MATRICULE";
plus quelques autres encore, sans davantage de succès.

Lors des requêtes vers les tables seules, la commande MYSQL_QUERY comportait 2 arguments: la requête et le "link".
Quid dans la requête de jointure ?

Désolé d'avoir peut-être été un peu long, mais je voulais donner un maximum d'informations.

Merci d'avance à tous ceux qui se pencheront sur mon problème et voudront bien m'apporter leurs lumières.

Mike