|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Inscription : août 2007 Messages : 496 ![]() |
Bonjour a tous,
Voila mon problème : J'ai créé un champ de formulaire pour faire une recherche sur une base de donnée mais lorsque je tape par exemple « le chat et la souris » les mots « le », « et », « la » sont pris en compte dans la recherche ce qui ne m’aide pas sur le nombre de résultats obtenu qui peut être très important. Je souhaiterai que la recherche se fasse sur les seuls mots « chat » et « souris » sans tenir compte des mots de moins de 4 caractères par exemple. Quelle est la commande à taper pour ce type de requête en fait je voudrai que le script efface ces petit mots pendant son exécution. Merci d’avance pour vos futures réponses |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
soit tu définis une liste de mots a ignorer dans un tableau, ensuite tu découpes ta chaine en un tableau de mots et tu utilises une boucle sur les éléments du tableau de ta chaine pour vérifier que ca n'est pas un mot a ignorer.
tu peux aussi simplement découper les mots de ta chaine en un tableau (explode()) et ensuite tu vérifies que chaque mot a une taille supérieure a 3 par exemple |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : août 2007 Messages : 496 ![]() |
Merci koopajah pour ta réponse rapide.
Je pense que la deuxième solution serai la plus simple j'ai déja decouper les mots dans un tableau mais je ne sais pas comment supprimer les mot de plus de 3 lettres a l'interieur de celui ci avant de les envoyer a ma base de donnée. |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
tu parcours ton tableau, et tu ajoutes dans un nouveau tableau les mots a rechercher (donc pas ceux de moins de 4 lettres) |
|
|
|
00
|
|
|
#5 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Peut être :
Code :
$out = trim(preg_replace('~\s*\b\S{1,3}\b\s*~', ' ', $in)); |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : août 2007 Messages : 496 ![]() |
Merci koopajah je vais essayer ta solution bien que je ne saist pas encore comment faire.
julp j'ai essayer ta ligne de code mais ça ne me donne pas le résultat voulu. Merci encore pour votre aide |
|
|
00
|
|
|
#7 | |||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Code :
Code :
|
|||||
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() Inscription : août 2007 Messages : 496 ![]() |
Je recupere deja dans un tableau mais le probleme est que j'ai essayer les differentes solutions que vous me donnez mais je pense plutot que je ne les places pas au bon endroits.
Pour faire plus simple voici mon script Code :
|
||
|
|
00
|
|
|
#9 | ||||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Code :
Code :
Code :
Par contre votre appel à strtolower n'est peut être plus utile. |
||||||
|
|
00
|
|
|
#10 | ||||
|
Membre éprouvé
![]() Inscription : août 2007 Messages : 496 ![]() |
Trop fort un grand merci votre code fonctionne
Celui la : Citation:
Citation:
Citation:
Citation:
Y a t'il un moyen de faire en sorte que le script affiche plutôt le message demandant de changer de mots clés ???
|
||||
|
|
00
|
|
|
#11 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Il faudrait tester ce qu'il "reste" via votre variable $nb avant même de faire la requête :
Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre éprouvé
![]() Inscription : août 2007 Messages : 496 ![]() |
Ok merci beaucoupPour moi le sujet est clos et résolu. tout fonctionne a merveille
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com