comment faire un moteur de recherche

comment faire un moteur de recherche - PHP - Programmation

Marsh Posté le 20-02-2010 à 15:02:17    

Bonjour a tous, j'aimerais décomposer un mot  
exemple:
$mot="bonjour"
decomposer $mot pour que ca donne:
b
o
j
o
u
r
j'avais pensé a explode mais je pense qu'il faut mettre des " entre toute les lettres...
comment s'y prendre merci de vos réponse


Message édité par keo64 le 21-02-2010 à 14:28:51
Reply

Marsh Posté le 20-02-2010 à 15:02:17   

Reply

Marsh Posté le 20-02-2010 à 15:11:29    

Quelques secondes dans la doc PHP suffit pour trouver : str_split(). Autre solution : substr() dans une boucle avec comme limite le nombre de caractères de ta chaîne.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 20-02-2010 à 15:14:11    

merci c'est exactement ca que je voulais, maintenant une autre question  
si j'écrit  
$mot="#bon, jo.ur #";
et comme je pourrai mettre ma condition pour que je sache qu'il y a au moin 3 lettre +chiffre qui a dans
$mot
comment je procède pour supprimer les espace, les . les #.. les caractèrez bizzard


Message édité par keo64 le 20-02-2010 à 15:16:01
Reply

Marsh Posté le 20-02-2010 à 18:15:01    

Tu fais un tableau avec les lettres, un autre avec les chiffres (un pour chaque type de caractère). Tu vérifies pour chaque caractère à quel tableau il appartient et tu incrémentes une variable pour les lettres, une autre pour les chiffres, ...
 
Pour le reste, RTFM.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 20-02-2010 à 20:04:30    

merci de ta réponse j'ai faire en sorte qu'on ne puisse pas chercher le mot bonjour avec des caractères spéciaux
en utilisant les regex
j'avais pas pensé a faire cette étape mais je sais pas si c'est faisable:
 
suposant que je veux savoir si $mot contient le mot bonjour
je modifie $ mot par des % je suppose que $_POST['mot']=$mot  
$mot="bojr"
1 $mot="%bojr% -> $find_device=" SELECT * FROM table WHERE champ LIKE '$bojr' ORDER BY id_article ";
2 $mot="%b%ojr%-> $find_device=" SELECT * FROM table WHERE champ LIKE '$b%orj%' ORDER BY id_article ";
3 $mot="%b%o%jr%
4 $mot="%b%o%j%r%
 
pensez vous que c'est faisable avec ces 4 étape on ferais une boucle en faisant les 4 requête?


Message édité par keo64 le 20-02-2010 à 20:57:35
Reply

Marsh Posté le 21-02-2010 à 10:09:17    

sinon t'as d'autres méthodes bien plus adaptées à ce genre de tâche, comme le Soundex, ou Levenstein, ou autres algos...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-02-2010 à 14:11:04    

merci de ta réponse sinon j'ai essayer ceci:

Code :
  1. SELECT *FROM matable WHERE MATCH (ref) AGAINST ('tsx')


 
je rechercher un article qui s'appelle tsx17, dans ma base j'ai miis dans le champs ref (index en fulltext) tsx17 et tsx7, pouquoi il ne trouve pas tsx17?
 

Code :
  1. MySQL n'a retourné aucun enregistrement. ( Traitement en 0.0007 sec. )


 
Soundex, ou Levenstein ca marche aussi avec des référence de produit electronique? ou ce n'est que des mot qui existes déjà qui compare des champs lexicaux?

Message cité 1 fois
Message édité par keo64 le 21-02-2010 à 14:12:29
Reply

Marsh Posté le 22-02-2010 à 15:52:43    

keo64 a écrit :


(...) Levenstein (...) ce n'est que des mot qui existes déjà qui compare des champs lexicaux?


Non.
 

Spoiler :


Soundex, je connais pas, mais je ne pense pas non plus.
Pour Levenstein, aucune raison que ça ne fonctionne pas avec des références de produits élec.


Message édité par kao98 le 22-02-2010 à 15:53:33

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed