[MySQL] select sur deux bases
Résolu
chmanu
Messages postés
166
Date d'inscription
Statut
Membre
Dernière intervention
-
Romu -
Romu -
Bonjour,
J ai fait de multiples recherches sur internet et j ai toujours pas trouvé réponse à cette question :
peut on (si oui comment) faire une requete type select sur deux bases MySQL différentes ?
en gros, un truc du genre :
Ces deux bases sont sur le meme serveur
Merci pour vos réponses
Chmanu
J ai fait de multiples recherches sur internet et j ai toujours pas trouvé réponse à cette question :
peut on (si oui comment) faire une requete type select sur deux bases MySQL différentes ?
en gros, un truc du genre :
select * from db1.tableA, db2.table2 where db1.tableA.chpX = db2.tableB.chpY
Ces deux bases sont sur le meme serveur
Merci pour vos réponses
Chmanu
A voir également:
- [MySQL] select sur deux bases
- Comment faire deux colonnes sur word - Guide
- Deux ecran pc - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux whatsapp sur un téléphone - Guide
- Mysql community server - Télécharger - Bases de données
8 réponses
Bonjour
J'ai résolu le problème de cette manière :
$db1= "nombasededonnees1";
$db2= "nombasededonnees2";
$handle_db1 = mysql_connect($host, $user, $pass);
$handle_db2 = mysql_connect($host, $user, $pass, TRUE);
mysql_select_db($db1, $handle_db1);
mysql_select_db($db2, $handle_db2);
$query = "select * from test";
$which = $handle_db1;
mysql_query($query, $which);
$query = "select * from test";
$which = $handle_db2;
mysql_query($query, $which);
Et ça marche! C'est le TRUE dans le 2ème connect qui règle le problème. Si je me souviens bien, il faut MySql 5.
P@tri.ck
http://anglais.linguistmail.com/index.php
J'ai résolu le problème de cette manière :
$db1= "nombasededonnees1";
$db2= "nombasededonnees2";
$handle_db1 = mysql_connect($host, $user, $pass);
$handle_db2 = mysql_connect($host, $user, $pass, TRUE);
mysql_select_db($db1, $handle_db1);
mysql_select_db($db2, $handle_db2);
$query = "select * from test";
$which = $handle_db1;
mysql_query($query, $which);
$query = "select * from test";
$which = $handle_db2;
mysql_query($query, $which);
Et ça marche! C'est le TRUE dans le 2ème connect qui règle le problème. Si je me souviens bien, il faut MySql 5.
P@tri.ck
http://anglais.linguistmail.com/index.php
Testé et approuvé, cela fonctionne. J'aurais pas dit... :)
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Bah merde alors, j ai essayé, ca ne marche pas !!
Faut dire, je ne suis pas root de la base. Quels doivent etre les droits dans ce cas ?
Merci, en tout cas, ca m avance, j irai voir l admin pour augmenter mes droits.
Chmanu
Faut dire, je ne suis pas root de la base. Quels doivent etre les droits dans ce cas ?
Merci, en tout cas, ca m avance, j irai voir l admin pour augmenter mes droits.
Chmanu
Non, c est ok.
En fait tout à l heure j ai du essayé mais la connexion n etait pas ouverte sur les deux bases.
Et y a un truc qui m a fouttu dedans aussi, c'est que le client que j utilise (MySQL Control Center) n'active pas la complétion pour ce genre de requetes.
En tout cas merci.
Chmanu
En fait tout à l heure j ai du essayé mais la connexion n etait pas ouverte sur les deux bases.
Et y a un truc qui m a fouttu dedans aussi, c'est que le client que j utilise (MySQL Control Center) n'active pas la complétion pour ce genre de requetes.
En tout cas merci.
Chmanu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je cherche plutôt à faire une requête sur 2 serveurs différents, genre select * from serveur1.base1.table1 , serveur2.base2.table2 .. . .. .
Quelqu'un aurait-il une solution ?
Quelqu'un aurait-il une solution ?
C'est pour le moins original. T'as essayé ?
Je vais tester. J'te dirai ca après.
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Je vais tester. J'te dirai ca après.
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Ah ouais, moi j'etais en root, ca doit etre une question de droit effectivement...
Par contre, je ne saurais pas te dire lesquels il te faut. A vue de pif, il faudrait que tu ait les meme sur les deux bases avec le meme user.
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Par contre, je ne saurais pas te dire lesquels il te faut. A vue de pif, il faudrait que tu ait les meme sur les deux bases avec le meme user.
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Bien vu !
Question subsidiaire : Comment le faire en PHP ?
Deux mysql_connect ?
:-)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Question subsidiaire : Comment le faire en PHP ?
Deux mysql_connect ?
:-)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
<?
$db1 = "prestige_app";
$db2 = "cobra_app";
$cnx1 = mysql_connect("host","login","pass");
$cnx2 = mysql_connect("host","login","pass", TRUE);
mysql_select_db($db1, $cnx1);
mysql_select_db($db2, $cnx2);
$query = "SELECT ID FROM inventaire";
$which = $cnx1;
mysql_query($query, $which) or die mysql_error($cnx1);
$which = $cnx2;
mysql_query($query, $which) or die mysql_error($cnx2);
?>
cependant cela me donne : Parse error: syntax error, unexpected T_STRING in /homepages/40/d180087966/htdocs/test2base.php on line 17
Deplus comment as tu fait pour afficher le résultat dans un table ?
Mais la je me demende sérieusement comment afficher cela en un seul tableau html.
$query2= "SELECT city, telephone FROM $table2";
$result1= mysql_query($query1, $handle_db1);
$result2= mysql_query($query2, $handle_db2);
while ($row1= mysql_fetch_array($result1)) $array1[]= $row1;
while ($row2= mysql_fetch_array($result2)) $array2[]= $row2;
name : $result1[$i][0]
address : $result1[$i][1]
city : $result2[$i][0]
telephone : $result2[$i][1]
name : $array1[$i][0]
address : $array1[$i][1]
city : $array2[$i][0]
telephone : $array2[$i][1]
$query2= "SELECT city, telephone FROM $table2";
$result1= mysql_query($query1, $handle_db1);
$result2= mysql_query($query2, $handle_db2);
while ($row1= mysql_fetch_array($result1)) $array1[]= $row1;
while ($row2= mysql_fetch_array($result2)) $array2[]= $row2;
name : $array1[$i][0]
address : $array1[$i][1]
city : $array2[$i][0]
telephone : $array2[$i][1]