Psm163 Posté 8 Novembre 2005 Partager Posté 8 Novembre 2005 Bonjour, Je suis webmaster débutant dans la conception de pages dynamiques et une requète me pose problème, je m'explique: j'ai une table de produits dont le champ "marque" est numérique (renvoie à une table marque), le champ "modele" est TEXT, le champ "prix" est FLOAT, et le champ "catégorie" est numerique (renvoie à une table catégorie) j'affiche sur une page categorie.php tous les produits de catégorie identique: idURL = id des mes catégories Jusque la pas trop de pb pour afficher le modele et le prix, mais pour la marque, c'est la valeur numérique qui s'affiche... Vous me voyez venir... Comment faire pour pour remplacer cette valeur numérique par le nom de la marque (table_marque.id = table_produit.marque) ? Je vous remercei de vos réponses Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 8 Novembre 2005 Partager Posté 8 Novembre 2005 Bonjour, Tu dois faire une jointure : Select table_marque.nom as marque, table_produit.* from table_produit inner join table_marque on table_marque.id = table_produit.marque where idURL = '' Bon courage Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Psm163 Posté 8 Novembre 2005 Auteur Partager Posté 8 Novembre 2005 Merci bcp, j'essaie ça et je te tiens au couant... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 8 Novembre 2005 Partager Posté 8 Novembre 2005 Bonjour, Tu dois faire une jointure : Select table_marque.nom as marque, table_produit.* from table_produit inner join table_marque on table_marque.id = table_produit.marque where idURL = '' Bon courage Portekoi <{POST_SNAPBACK}> Pourquoi faire un iner joint ici, ne serait-ce pas plus simple comme ça ? : Select table_marque.nom as marque, table_produit.* FROM table_produit, table_marque WHERE table_marque.id = table_produit.marque AND... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 8 Novembre 2005 Partager Posté 8 Novembre 2005 Bonjour, Non car les jointures par le "where" ne sont pas conseillées pour une question de ressources. Je trouve plus l'article qui en parle.... Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Psm163 Posté 8 Novembre 2005 Auteur Partager Posté 8 Novembre 2005 désolé mais je ne m'en sors pas...j'ai honte voilà la requete que j'utilise pour afficher les produits d'une meme catégorie sur une page: SELECT * FROM table_produits WHERE catégorie = idURL je peux afficher les champs de cette table mais le champ marque reste numérique. ce numéro renvoie à l'id de la table marques qui possède 2 champs: id et nom (le nom de la marque) j'aimerai afficher le nom de la marque à la place du numéro, je me doute que ça doit pas être très compliqué mais je n'y arrive pas même avec vos précédents conseils (je suis un boulet dsl) help Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 8 Novembre 2005 Partager Posté 8 Novembre 2005 Bonjour, Select table_marque.nom as nom_marque from table_produit inner join table_marque on table_marque.id = table_produit.marque where idURL = '' Fais cette premiere requete en affichant le champ 'nom_marque' Ensuite, fais cette requete ci : Select table_marque.nom as nom_marque, table_produit.* from table_produit inner join table_marque on table_marque.id = table_produit.marque where idURL = '' Même chose qu'au dessus mais affiche en plus les champs que tu veux de la table produit. Ne te traite pas de boulet. Pour moi, un boulet est une personne qui ne veux pas apprendre et ce n'est pas le sentiment que tu me donnes. Bon courage Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Psm163 Posté 8 Novembre 2005 Auteur Partager Posté 8 Novembre 2005 Merci mais j'ai finalement réussi a obtenir ce que je désire avec cette requète SELECT table_produits.*, table_marques.nom as marque FROM table_produits, table_marques WHERE programme = idURL and table_produits.marque = table_marques.id le problème c'est que c'est un coup de chance et que j'ai encore du mal à piger la signification de ce que j'écrisJe me suis aperçu d'un truc, c'est que si j'inverse les champs le la premiere ligne, ça marche plus, il faut donc que l'ordre des champs qui suivent SELECT correspondent à l'ordre des tables qui suivent FROM c'est bien ça ? Autre chose, comment fait on pour afficher un cadre "Code" quend on poste ? En tt cas merci bcp pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 8 Novembre 2005 Partager Posté 8 Novembre 2005 Re, Si ceci fonctionne : SELECT table_produits.*, table_marques.nom as marqueFROM table_produits, table_marquesWHERE programme = idURL and table_produits.marque = table_marques.id Alors ceci fonctionnera : SELECT table_produits.*, table_marques.nom as marqueFROM table_produits inner join table_marques on table_produits.marque = table_marques.idWHERE programme = idURL Pour ta question, tu dois mette [ CODE] -------- [ /CODE] sans espace Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant