Informatix le gaulois

Tutoriels et outils pour l'informatique.

Informatix > Tutoriels > PHP > Comment lancer une requête multi-bases avec les fonctions MySQL ?

Comment lancer une requête multi-bases avec les fonctions MySQL ?

Apprenez à faire des requêtes SQL sur plusieurs bases et à les exécuter à l'aide de PHP avec une seule connexion.

jeudi 03 février 2011 à 17:37

Scénario : Vous développez une application PHP 5 pour l'entreprise Informatix qui vend des jeux vidéos et des consoles vidéos. L'administrateur de la base de données MySQL a décidé de diviser l'ensemble en 3 grosses partie :

  • Une base jeux vidéo : jeux_video
  • Une base consoles vidéo : console_video
  • Une base avec les partie communes telles que les clients, les départements etc... : commun

Dans votre application il vous est demandé d'afficher, par date d'achat de la plus récente à la plus ancienne et par ordre alphabétique, le nom des jeux achetés par un client lorsque son nom est saisi.

La requête devrait ressembler à un truc dans ce style :

CODE

	SELECT
	jv.nom AS jv_nom
	FROM
	commun.clients c
	INNER JOIN jeux_video.achats_jeux aj ON (aj.client_id = c.id)
	INNER JOIN jeux_video.jeux jv ON (jv.id = aj.jeu_id)
	WHERE
	c.nom = 'NlC0'
	ORDER BY
	aj.date_achat DESC,
	jv.nom ASC
	

Reste maintenant à pouvoir lancer cette requête avec PHP. Habituellement nous utilisons dans l'ordre les fonctions mysql_connect pour établir une connexion avec le serveur SQL, puis mysql_select_db pour sélectionner une base de données, et enfin mysql_query pour lancer la requête.

Dans votre cas, pour travailler avec plusieurs bases de données, deux solutions existent :

  • Ne pas mettre de fonction mysql_select_db du tout.
  • Utiliser la fonction comme ceci : mysql_select_db("")

Vous trouverez sur la toile de nombreuses personnes qui vous proposent de créer deux connexions puis de réinjecter les résultats d'une requête dans l'autre, une sorte de jointure manuelle. Evidemment ces pratiques sont à bannir dans la majorité des cas et proviennent de personnes qui ne savent tout simplement pas comment faire autrement.

Nicolas GAUTRON

Auteur

Nicolas GAUTRON
Créateur et administrateur.
http://www.informatix.fr



^ Haut de page ^



Dans la même catégorie

Une version mobile de mon site avec le Zend Framework
Doctrine et le Zend Framework : Présentation, intégration et utilisation
Créer son flux RSS simplement avec Zend_Feed
Un client HTTP / proxy en PHP
Appliquer un layout sur un mail avec le Zend Framework
Activer PHP5 sur un hébergement 1&1
Implode / Explode : Du tableau à la chaine de caractères, de la chaine de caractères au tableau


Commentaire(s)



^ Haut de page | Commentaires ^