|
|
|
|
Bonjour à tous ,
Voila j'ai un petit probleme, je travaille depuis plusieurs mois sur SQL et je rencontre un probleme ou la je coince.
Présentation :
J'effectue une requete avec l'envoir d'une variable GET[truc] dans une base de donnée qui me renvoie alors une ligne contenant des identifiants (13 au total) correspondant a la valeur de la variable GET[truc].
Maintenant je veux mettre en relation chaque identifiant récupére avec leurs descriptions dans une autre table.
Problème :
La réponse de SQL est un enregistrement avec 1 ligne dont chaque champ contient une donnée (13 au total). Je souhaiterai 1 champ avec 13 lignes. Une sorte d'invertion de ligne en colonne. Mais la UNION ne marche pas il veut des égalités de colonne et de lignes.
Merci d'avance pour votre aide.
Tu as plusieurs solutions.
select champs1,d1.descr as desc1, champs2, d2.descr as desc2 (...) from matable, madescrtable as d1, madescrtable as d2 (...) where champs1=d1.champs and champs2=d2.champs (...) ça fait bourrin et je sais pas si ça va pas planter l'appli mais ça marche en théorie. Sinon, l'union marche aussi au lieu de faire select * from matable where $condition tu fais : select champs1 as champs, description from matable, madescrtable where matable.champs1=madescrtable.champs $condition union select champs2 as champs, description from matable, madescrtable where matable.champs2=madescrtable.champs $condition union select champs3 as champs, description from matable, madescrtable where matable.champs3=madescrtable.champs $condition (...) Tu obtiens ainsi tes 13 champs en colonne. Enfin, tu peux passer par plusieurs étapes aussi : récupérer la ligne avec les 13 champs comme tu fais. Puis mettre les 13 champs dans une chaine "(champs1, champs2,champs3,...)" puis faire la requete sur les descriptions avec : select * from madescrtable where champs in $malistedechamps Mais au final, je dirais que t'as mal pensé tes tables dès le départ :-p Dans sa voiture rouge et jaune |
Boujour tout le monde !
|
Hmmm, si chaque produit a des elements distincts par rapport à d'autre produit, tu peux écrire la description de l'élément directement dans la table produit.
|
Et bien !
SELECT IDmachin1 AS IDdesmachin, nouvelletable FROM descriptif_produit WHERE descriptif_produit.IDmachin1= nouvelletable.IDdesmachin AND descriptif_produit.IDproduit= '$variable'ou bien sur $variable me sert a recuperer mon produit. merci pour ton aide ! |
Non, en fait,
|