Recherche dans plusieurs colonne bbd
johnyyyy
-
johnyyyy -
johnyyyy -
Bonjour,
Voilà j'ai fais une requete pour une recherche par mot clé dans une bdd.
Tout marche correctement, mais je voudrais faire la recherche sur 3 colonnes dans ma table.
Les colonnes sont marque, libelle, detail pour l'instant juste libelle est mis.
Merci de votre aide
Voilà j'ai fais une requete pour une recherche par mot clé dans une bdd.
Tout marche correctement, mais je voudrais faire la recherche sur 3 colonnes dans ma table.
$recherche = htmlentities($_POST['recherche']);
$req = 'SELECT * FROM produit WHERE ';
$mots = explode(' ',$recherche);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' libelle LIKE "%'.$mot.'%" AND';
}
$req .= ' 1=1';
$req .= ' order by prixred asc';
$requete = mysql_query($req);
Les colonnes sont marque, libelle, detail pour l'instant juste libelle est mis.
Merci de votre aide
1 réponse
-
Bonjour,
On recherche le même mot dans les trois champs ?
Ca donnerait ça :
$recherche = htmlentities($_POST['recherche']);
$req = 'SELECT * FROM produit WHERE ';
$mots = explode(' ',$recherche);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' libelle LIKE "%'.$mot.'%" AND detail LIKE "%'.$mot.'%" AND marque LIKE "%'.$mot.'%" AND'
}
$req .= ' 1=1';
$req .= ' order by prixred asc';
$requete = mysql_query($req);
Mais attention, l'opérateur like fait patiner le sgbd, alors avec dix mots dans la recherche et une grosse table, ce genre de requête va faire une bombe.
Cordialement
-
-
-
Je comprend, bah alors je vas rester sur ma premiere idée qui est de faire une colonne supplémentaire qui regroupe les 3 colonnes pour chaque article et faire la recherche uniquement dans cette colonne.
il me reste un soucis, avant que je mette le systeme de recherche tout les produits sont affiché les uns en dessous des autres mais séparé d'une bordure.
Maintenant la bordure s'affiche mais une fois la page chargée elle disparait.
Et en plus c'est long à chargé et il m'indisque srchdectec4.predictad.com ??
Merci
-