Recherche dans plusieurs colonne bbd

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.

$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:

1 réponse

Utilisateur anonyme
 
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
0
johnyyyy
 
Oui j'ai essayé mais c'est pas se que je veux.

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
0
Utilisateur anonyme
 
C'est faisable, mais comment savoir à quel champ correspond quelle valeur ?

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...
0
johnyyyy
 
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
0