PHP/SQL : Lien entre X bases de données SQL

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 : PHP/SQL : Lien entre X bases de données SQL

Re: PHP/SQL : Lien entre X bases de données SQL

par apriou » 09 févr. 2010, 16:22

Ça c'est un problème utilisateur de regrouper 4 bases dans une seule base après 2 ans d'exploitation...

Merci pour ces solutions je verrai quoi utiliser en fonction du choix final des décideurs.

Ca me permet de voir ce qu'il est possible de faire, merci beaucoup.

Re: PHP/SQL : Lien entre X bases de données SQL

par macgawel » 09 févr. 2010, 16:13

Je cherche une solution alternative en ne regroupant que certaines données pour garder les 4 bases séparées.
(...)
Le souci est surtout que faut il utiliser pour déterminer quelle base ouvrir entre les 4.
D'où l'intérêt de regrouper tout dans une seule base ! :mrgreen:

Sinon, deux solutions :
1. Dans ta base A, qui regroupe tous les clients de toutes les bases (en espérant qu'il n'y ait jamais un client qui se retrouve dans deux bases...), tu as un champ qui spécifie la base d'origine.
=> Pour construire ta liste principale tu fais :
SELECT baseA.tableA.nom, baseA.tableA.base_d_origine FROM baseA.tableA;
Et tu construit ton lien en spécifiant la base d'origine :
<a href="http://monsite/detail.php?client=toto&base=baseB">clent Toto</a>
Il te suffit de récupérer la base par $_GET['base'] (ou $_POST si tu utilises un formulaire).
:!: Pense à faire toutes les vérifications qui vont bien, au cas où un petit malin essayerait de bidouiller l'adresse...

2. Tu n'as rien dans ta base A.
Le plus simple, dans ce cas, est peut-ête encore de faire ta liste à partir des différentes bases. comme ça, tu pourras ajouter le paramètre qui va bien...

Re: PHP/SQL : Lien entre X bases de données SQL

par apriou » 09 févr. 2010, 15:56

Ce sont bien des bases. (erreur dans l'exple de requete)

Le pourquoi c'est car il existe 4 bases différentes remplies et que les utilisateurs veulent tout regrouper en une seule base. Je cherche une solution alternative en ne regroupant que certaines données pour garder les 4 bases séparées. Le but de cette liste est de choisir un client et d'être redirigé vers l'une des 4 bases déjà existante où sont rentrer toutes les données de ce client.

3. Juste pour l'exemple.

Pour le $_POST oui c'est déjà ce qui sert pour les ID actuellement (4 codes/4 bases). Le souci est surtout que faut il utiliser pour déterminer quelle base ouvrir entre les 4.

Re: PHP/SQL : Lien entre X bases de données SQL

par macgawel » 09 févr. 2010, 15:39

Bonjour.

1. Tu parles de Bases ou de Tables ? ce n'est pas très clair.

2. On pourrait avoir un peu plus de détails ? Pourquoi décomposer en trois tables/bases ?

3. Apparemment, tu utilises 'nom' comme clé. Mauvaise idée, il y a quend-même de fortes chances pour qu''il y ait des homonymes...

Pour répondre à la question :
A partir du moment où tu "sais" quelle table/base utiliser (la B ou la C), il n'y a pas de problème : il suffit de passer le code client (et éventuellement la table/base à utiliser) en paramètre de ton URL : http://monsite/liste?codeclient=<code client>
Ces données seront récupérées dans le $_GET

PHP/SQL : Lien entre X bases de données SQL

par apriou » 09 févr. 2010, 14:38

Bonjour

Je viens surtout pour un renseignement sur si c'est possible ou non ce que je vais développer.

La question est : je requête ma base A, selon le clic utilisateur est ce que je peux accéder a la base B ou C selon sa réponse.

Se sera plus parlant avec un exemple.

J'ai 3 bases sur le même serveur :
- La base A qui va contenir une table client avec l'ensemble des clients regroupés
- La base B qui va contenir les clients du produit X
- La base C qui va contenir les clients du produit Y (sachant qu'un client ne peut pas être dans X et Y donc pas de doublon)

Donc j'ai ma page d'accueil avec la liste des clients achetant les 2 produits sous la forme

Code : Tout sélectionner

client 1 produit X client 2 produit Y client 3 produit Y ...
Pour obtenir cette liste je fais une requête SQL : SELECT baseA.tableA.nom, produit FROM baseA.tableA


La question si je choisis le client 1 est ce possible de faire une requête SELECT tableB.nom FROM tableB WHERE nom='client 1' à partir des résultats de ma requête précédente. utilisation d'un $_SESSION[nom_sélectionné]


Sinon il est peut être possible de faire une liste en requetant table B et C dans une requête (possible ca) mais comment après repartir sur la bonne base entre le mysql_connect et le $_SESSION

Merci d'avance