Selectionner une donnée en fonction d'une autre

Selectionner une donnée en fonction d'une autre - SQL/NoSQL - Programmation

Marsh Posté le 24-06-2010 à 22:35:59    

Bonjour,
 
Je cherche à savoir comment extraire d'une base de donnée, une donnée en fonction d'une autre...
 
Je voudrais concrètement afficher 5 articles qui font partie de la même rubrique à laquelle appartient une article visualisé dans une page (cas d'une boutique qui affiche "les 5 articles de la même catégorie" )
 
Pour ce faire j'utilise :
 

Code :
  1. SELECT * FROM catalogue WHERE categorie LIKE '%$categorie%' ORDER BY RAND() limit 0,5


 
Mais avec ceci j'affiche 5 articles au hasard qui sont piochés dans toute ma base de donnée et pas dans la catégorie en question...
 
Y a-t-il une astuce pour filtrer uniquement dans la catégorie ?
Merci

Reply

Marsh Posté le 24-06-2010 à 22:35:59   

Reply

Marsh Posté le 25-06-2010 à 07:52:37    

Theoriquement ta query devrai te retouner exactement ce que tu veux.
Dans ton resultat tu as des enregistrements qui ne font pas partie de la catégorie "$categorie"?

Reply

Marsh Posté le 25-06-2010 à 09:22:17    

Bonjour et merci.
 
Oui et non en fait la requete me renvoie tout ce qu'il y a dans ma base de donnée c'est à dire au lieu d'afficher 5 articles de la catégorie, j'affiche 5 articles de la base de donnée...
 
Effectivement je ne vois pas comment faire

Reply

Marsh Posté le 25-06-2010 à 10:06:36    

Comme Oliiii,,je comprends pourquoi ta requête fait pas ce que tu veux :/
 
Es-tu sûr du contenu de la variable $categorie? Parce que si elle est vide, ça fait like '%%', donc y'a pas de filtrage effectué. Par ailleurs, si tu veux 5 articles de la même catégorie, pas besoin de mettre like et les %, tu peux mettre direct Where categorie = '$categorie'


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed