Requete sur 2 BD Interbase differentes

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 : Requete sur 2 BD Interbase differentes

par orgerix » 26 juin 2007, 22:18

TU n'as pas écouté ce que je te disais :wink:

Dans tes filtres, tu n'indique pas la BDD.
Ensuite, tu fais plusieurs jointures sur la même table. Et la, le surnommage est obligatoire. Fait un tour par la http://sqlpro.developpez.com/cours/sqlaz/jointures/.

par Chile » 26 juin 2007, 20:53

je viens de mettre tout ça en place, mais j'ai une page en blanche en affichage, sans message d'erreur.
Voici la requete (désolé sans avoir surnommé les bases)
$query_enr_produits = sprintf("SELECT * 
 FROM horizogaland.shop2_produits
 LEFT OUTER JOIN horizogallat.shop_produits
 ON horizogaland.shop2_produits.rubannu1=horizogallat.shop_produits.rubannu1
 LEFT OUTER JOIN horizogallat.shop_produits
 ON horizogaland.shop2_produits.rubannu2=horizogallat.shop_produits.rubannu2
 LEFT OUTER JOIN horizogallat.shop_produits
 ON horizogaland.shop2_produits.rubdetail2=horizogallat.shop_produits.rubdetail2
 WHERE shop2_produits.rubannu1
 LIKE '%%%s%%' OR shop2_produits.rubannu2
 LIKE '%%%s%%' OR shop2_produits.rubdetail2
 LIKE '%%%s%%' ", $motcle_enr_produits, $motcle_enr_produits, $motcle_enr_produits);
et le code qui fonctionne bien actuellement mais sur une base
$query_enr_produits = sprintf("SELECT *
 FROM shop2_produits
 WHERE shop2_produits.rubannu1
 LIKE '%%%s%%'  OR shop2_produits.rubannu2
  LIKE '%%%s%%' OR shop2_produits.rubdetail2
  LIKE '%%%s%%' ORDER BY shop2_produits.titre", $motcle_enr_produits, $motcle_enr_produits, $motcle_enr_produits);
[/code]
je me suis surement planté !! est-ce que tu vois ou ??

par orgerix » 26 juin 2007, 17:33

OUi, du moment que tu indique bien les ccolonnes, c'est dire, nomDB.nomTable.nomColomne

par Chile » 26 juin 2007, 16:35

oui, surement tu as été clair, mais j'ai pas trop compris !
C'est la que j'ai pas piger : 'tu mets le surnom après le nm de la table, après l'espace'


peux-tu me confirmer si pour une multi-requete (plusieurs mots cles sur plusieurs colonnes) je peux toujours utiliser LIKE et OR ?[/code]

par orgerix » 26 juin 2007, 16:25

Non, juste que lors de la requete, elles auront un autre nom. C'est plus simple de travailler avec des surnoms quand les noms des tables sont un peu llong et qu'il y a beaucoup de condition.

Pour surnommer une table, tu mets le surnom après le nm de la table, après l'espace et tu utilise le surnom pour le reste de la requete. J'ai été clair ?

par Chile » 26 juin 2007, 16:20

...surnommer...tu veux dire renommer mes bases et tables ?

par orgerix » 26 juin 2007, 16:15

Je te consseillerai de surnommer tes tables du style
Select FROM maBDD.matable C
pûis après, c'est comme une requete normal sauf que tu mais C comme nom de table

par Chile » 26 juin 2007, 16:12

ok, merci,
derniere question ! :wink:
comment cela ce code si j'ai une requete multicritere du genre
FROM produits WHERE produits.rubannu1 LIKE '%%%s%%'  OR produits.rubannu2  LIKE '%%%s%%' OR produits.rubdetail2  LIKE '%%%s%%'

par orgerix » 26 juin 2007, 15:57

La requete fait le même résultat quelque soit la base de donnée selectionnée, voire même si aucune base n'est sélectionnée. Par contre, quand je fait la requete sur PHPMyAdmin, je suis renvoyé automatiquement sur la première base de donnée. Donc si tu fais ensuite d'autre requete, il vaut mieux reselectionner la BDD.

par Chile » 26 juin 2007, 15:48

ah ok !!
mais que devient la connection à la base ??
mysql_select_db($database_mabase, $mabase);

par orgerix » 26 juin 2007, 15:28

C'est tout bête :D

Code : Tout sélectionner

SELECT * FROM nomDB1.nomTable1 LEFT OUTER JOIN nomDB2.nomTable2 ON nomDB1.nomTable1.Champ1=nomDB2.nomTable2.Champ2
J'ai extrapolé à partir de la syntaxe des permissions et ca marche.

par Chile » 26 juin 2007, 15:14

Bonjour,
Je suis interessé de savoir si qlq à une réponse à ce sujet !
donc requete sur deux tables qui se trouvent sur deux bases diffferentes et sur un meme serveur.
merci

par flitox » 04 avr. 2005, 14:40

J'ai lu un peu trop vite :oops:

par Hubert Roksor » 04 avr. 2005, 14:35

flitox, je crois que tu n'as pas lu que Tato cherche à joindre des tables sur deux "BD" différentes.

Je n'y connais rien en InterBase, mais tu ferais mieux de fournir quelques précisions supplémentaires comme la version de ton serveur et si les deux bases de données sont situées sur le même serveur ou sur deux serveurs différents.

par flitox » 04 avr. 2005, 14:11