Aller au contenu

Demande aide pour une requète


Sujets conseillés

Posté

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

Posté

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é
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...

Posté

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

Posté

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

Posté

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

Posté

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

Posté

Re,

Si ceci fonctionne :

SELECT table_produits.*, table_marques.nom as marque
FROM table_produits, table_marques
WHERE programme = idURL and table_produits.marque = table_marques.id

Alors ceci fonctionnera :

SELECT table_produits.*, table_marques.nom as marque
FROM table_produits inner join table_marques on table_produits.marque = table_marques.id
WHERE programme = idURL

Pour ta question, tu dois mette [ CODE] -------- [ /CODE] sans espace :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...