8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,
je suis actuellement en développement d'un site marchand et une de mes requetes php et à s'arracher les cheveux. Il s'agit de la requete de recherche, je vous laisse voir :



SELECT * FROM produits,categories WHERE description LIKE '%$motcle%' OR nom_prod LIKE '%$motcle%' AND produits.num_cate=categories.num_cate GROUP BY produits.num_prod


En gros, ça recherche un mot clé dans la table des produits ET c'est censé me trouver la catégorie du produit en même temps ... comme vous vous en doutez, ça ne marche pas !!


Que faire ?
Merci d'avance pour votre aide
Salut Banke Smiley cligne ,

on y verrait plus clair avec la structure des tables mais on peut supposer que cela ressemble à quelque chose comme :

produits
id_prod
nom_prod
description
num_cate

categories
id_cate
num_cate
nom_cate

Je continue de supposer que tu veux récupérer les champs id_prod, nom_prod et nom_cate (ce qui va permettre de se débarrasser du * qui augmente encore les ressources nécessaires à ce genre de requêtes).

Alors déjà il faut enlever le GROUP BY qui sert à regrouper les résultats sur 1 ou plusieurs champs et donne accès à des fonctions récapitulatives (COUNT, AVG, etc...) mais je n'en vois pas l'intérêt pour ce que tu veux faire Smiley langue !

Ce qui nous donne :
$sql = "SELECT id_prod, nom_prod, nom_cate FROM produits, categories WHERE produits.num_cate = categories.num_cate AND (description LIKE '%".$motcle."%' OR nom_prod LIKE '%".$motcle."%')";
$result = mysql_query($sql) or die(mysql_error()); 

A+ Smiley smile
Alors là Heyoan, on peut dire que tu es vraiment un bon !!
Déjà, super rapide. Ensuite tu as bien deviné la structure de mes tables (les nom de colonnes etaient presque bonnes). Et en plus tu me regles mon probleme !

Très bien joué ! +1 Smiley langue
Merci encore !