8791 sujets

Développement web côté serveur, CMS

Bonjour, j'aurais voulu savoir s'il était possible en php/mysql de se connecter à deux bases de données se trouvant sur le même serveur?

Et si oui avoir une petite indiquation sur la marche à suivre svp ^^



Bonne journée à tous
Modifié par chromatik (06 Aug 2009 - 12:26)
Salut,

Tu peux utiliser la fonction mysql_db_query() pour faire une requête sur une autre base que celle que tu as sélectionnée avec mysql_select_db(). Mais comme le dit la doc PHP à ce sujet, le mieux est d'utiliser le nom de la base dans ton FROM au lieu d'utiliser cette fonction.

Exemple :

# Base sélectionnée précédemment : `ma_base`

SELECT
   `ton_champ`
FROM
   `ma_deuxieme_base`.`ta_table`
j'ai une erreur mysql_fetch_array(), est-ce que je me trompe en écrivant ma requête comme cela? (je suis +- débutant dans le domaine...)


<?php 
$req_partielle2 = "SELECT * FROM 'ma_deuxieme_base'.'t_agenda'";
$result_partiel2 = mysql_query($req_partielle2); ?>



merci[
Modifié par chromatik (06 Aug 2009 - 09:19)
Ce ne sont pas des apostrophes qu'il faut mettre. Soit rien du tout, soit des accents graves pour les délimiteurs.
Ah mon problème n'est peut-être pas encore fini Smiley rolleyes
ça fonctionne très bien quand je selectionne des infos sur une seule table,

mais j'ai aussi une page ou je dois utiliser une requête sur deux tables et ça ne fonctionne plus, Est-ce que ça vient de mon code ou est-ce que c'est impossible à réaliser avec cette technique?


<?php //pour afficher la fonction du travailleur
$marequete_personnel = "SELECT * FROM ma_deuxieme_base.t_personnel,t_fonction WHERE personnel_fonction = fonction_id ";
$resultat_personnel = mysql_query($marequete_personnel);
?>



merci
Tu dois renseigner les deux bases dans ta requête qui prend pour base par défaut celle de la première table renseignée.
Smiley eek j'ai du mal à te comprendre sur ce coup ^^

Ce que j'essaye de faire ds cette requête c'est d'aller rechercher des infos dans 2 tables qui sont dans la même base de données.

En fait dans ma page je n'ai que deux requête,

la 1 est un SELECT * sur ma première db et la 2e requête (si dessous) s'effectuera sur ma deuxième bd...


quand je fais une simple requete * sur ma 2e base en ne prenant qu'un seul champs

"SELECT * FROM ma_deuxieme_base.t_personnel" ça fonctionne,
mais quand je rajoute le 2e champs =>mysql_fetch_array() Smiley decu



<?php //pour afficher la fonction du travailleur

$marequete_personnel = "SELECT * FROM ma_deuxieme_base.t_personnel,t_fonction WHERE personnel_fonction = fonction_id ";

$resultat_personnel = mysql_query($marequete_personnel);

?>


merci pour votre aide Smiley sweatdrop
Heu, ne confonds pas tout, tu ne rajoutes pas un deuxième champ, tu rajoutes une deuxième table.
Tu dois quand même renseigner la base pour chacune des tables dans ta requête, pas que pour la première.