Fonction Recherche

6 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour à tous,

J'ai quelques problèmes au niveau de la fonction recherche de peel premium.

J'ai déjà travaillé sur la fonction, l'améliorant pour effectuer celle-ci également sur les références produits, mais je ne vois pas comment intégrer un test de cette nature :huh: .

J'aimerais donc que lorsqu'une recherche est effectuée sur un référence telle que : "XX-123", le tiret ne soit pas pris en compte car il se peut qu'il soit présent ou non ?

Je pense qu'il faudrait que 2 recherches soient effectuées à chaque fois, une avec la prise en compte des caractères spéciaux et une autre sans.

Mais je ne vois pas du tout comment procéder donc si quelqu'un a déjà réfléchi à un tel problème...

Merci à vous.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

bonjour,

peut etre en faisant un test sur l'existane du caractere - avec strreplace

ensuite un explode

puis la recuperation des deux champ $ch[0] et $ch[1]

et enfin la construction de la requette

where peel_table like '%".$ch[0]?"%' or peel_table like '%".$ch[1]?"%'

peut etre que ça repond vaguement à votre demande .... :huh:

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

bonjour,

peut etre en faisant un test sur l'existane du caractere - avec strreplace

ensuite un explode

puis la recuperation des deux champ $ch[0] et $ch[1]

et enfin la construction de la requette

where peel_table like '%".$ch[0]?"%' or peel_table like '%".$ch[1]?"%'

peut etre que ça repond vaguement à votre demande .... :huh:

Ce que vous pouvez faire c'est

$mot_clef = str_replace("-"," ",le mot clé rechercé)

Puis faire une requ$ete LIKE sur mot_clef comme ça ce ne sera pas pris en compte

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci beaucoup pour vos réponses, je vais m'empresser d'effectuer ces modifications.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour et encore merci pour vos réponses, j'ai actuellement établi le code suivant :

if(isset($_GET['motclef'])){


if($_GET['motclef']==""){


$motclef="non";


}


else{


$motclef = htmlspecialchars(trim($_GET['motclef']), ENT_QUOTES);

$newmotclef = str_replace("-", "", $motclef);


}


}


else $motclef="non";







$SqlRequest2 = "SELECT id, reference, nom_".$_SESSION['langue'].", image1, prix, promotion FROM peel_produits WHERE 


etat = '1' AND (reference LIKE '%" . $motclef . "%' 


OR nom_".$_SESSION['langue']." LIKE '%" . $motclef  . "%' OR descriptif_".$_SESSION['langue']."


LIKE '%" .  $motclef  . "%' OR


reference LIKE '%" . $newmotclef . "%' 


OR nom_".$_SESSION['langue']." LIKE '%" . $newmotclef  . "%' OR descriptif_".$_SESSION['langue']."


LIKE '%" .  $newmotclef  . "%'


) LIMIT $start, $nb";

Il est opérationnel, cependant, il ne répond pas exactement à ma demande :)

Un exemple concret :

J'ai dans ma boutique, un article avec la référence suivante : BC-21.

Si un client effectue une recherche sur le mot clé : BC21, il n'obtiendra aucune réponse.

En fait, il faudrait que le tiret (ou autres caractères spéciaux) ne soit pas pris en compte dans les élèments recherchés et non dans le mot clé :huh:

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

au lieu d'appliquer sur $newmotclef applique sur le champs correspondant à BC-21

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping