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
A voir également:
- Recherche dans plusieurs colonne bbd
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Colonne word - Guide
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
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
les colonnes contienne des élements différents ex:
Marque = PC Libelle = super performence detail = 900 mo
Lorsque $recherche = pc performence
J'aimerai qu'il m'affiche la ligne qui contienne c'est mot clé.
Merci
Je m'explique si $recherche='900mo performance pc'
un système auto va faire ceci
marque = '900mo' and libelle='performance' and detail='pc'
Ca marchera pour $recherche='pc performance 900mo', mais pas dans l'autre sens...
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