01net    Web


Actuellement en ligne : 129 Utilisateurs dont 5 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > PHP
> Moteur de recherche
Auteur
Message
 
<     1       >
zildal
  Un regard... pacifique!
  :-)
      ?   @     Posté le 19/12/2007 12:17:00  
Voter pour ce message
Bonjour à tous,

J'ai un souci à propos de moteur de recherche. Ca marche très bien mais le problème vient de la lettre minuscule ou majuscule :
Dans l'article, il y a un mot "Qui". Je mets "qui" dans le moteur de recherche. Ca répond "0 Résultat". Et si je mets "Qui" dans le moteur de recherche. Ca répond "1 Résultat".

Comment faire pour que le moteur trouve un mot quel que soit la minuscule ou la majuscule de la lettre?


$moteur="SELECT * FROM ".$TABLE."archives WHERE a_title LIKE '%$rech_demande%' OR a_texte LIKE '%$rech_demande%'";
$moteur=mysql_query($moteur);
$nbr_moteur=mysql_num_rows($moteur);

if($nbr_moteur=="0"){
--> Aucun résultat
}else{
--> Résultats
}


Merci et bonne journée :)
-->Message édité par zildal le 19/12/2007 12:17:38<--
-------
Rien n'est...
edfed
  
  :-)
      ?   @     Posté le 19/12/2007 17:55:50  
Voter pour ce message
facile! ( la c'est en assembleur intel )

asciicar db 'DSDdsdSDSdsD',0
asciicar2 db 'dSDdsddDSdsD',0

case_unsensitive:
mov edi,asciicar ;pointer sur les deux mots a comparer
mov esi,asciicar2
.nextcompare:
mov al,[edi] ;charger les deux lettres a comparer
mov ah,[esi]
inc esi ;incrementer les pointeurs
inc edi
or ah,ah ;fin du texte?
je .end
or al,al ;caractere ascii=0?
je .end ;alors fin, .end
cmp al,'A' ;plus petit que 'A'?
jb .err
cmp ah,'A'
jb .err ;alors erreur
cmp al,'z' ;plus grand que 'z'?
ja .err
cmp ah,'z'
ja .err ;alors erreur
or al,20h ;'A' or 20h = 'a'
or ah,20h ;'A' or 20h = 'a'
cmp al,ah ;comparer les deux lettres
je .nextcompare ;elles sont identiques, alors la suite
.err:
stc ;set carry flag, ça veu dire que c'est pas bon
ret
.end:
clc ;clear carry flag, ça veu dire que c'est bon
ret


bon, en gros, le 'A' = 41h ( 41 hexadecimal )
le 'a' = 61h
la difference des deux, c'est 20h; soit 010000 binaire
il suffit de forcer le bit n°5, bit de rang 5, valeur 20h, ou 32 decimal, pour positioner les lettres dans le meme case..

-->Message édité par edfed le 20/12/2007 06:52:01<--
edfed
  
  :-)
      ?   @     Posté le 20/12/2007 00:48:10  
Voter pour ce message
ouais, et bein si tu sais lire, je lui donne l'astuce, 'a'=61h 'A'=41h
'a' or 20h = 'a'
demerdez vous avec ça, tu veu pas non plus que je te borde ton lit?
-->Message édité par edfed le 20/12/2007 06:53:07<--
zildal
  Un regard... pacifique!
  :-)
      ?   @     Posté le 01/01/2008 16:03:24  
Voter pour ce message
Désolé pour une longue absence.

Euh.. Je cherche surtout le php... J'y arrive toujours pas... J'avoue ne rien comprendre ton script :)

Je crois qu'il existe une fonction pour pouvoir chercher quelque soit la majuscule ou les minuscules des mots... Je sais pas lequel


-->Message édité par zildal le 01/01/2008 16:05:38<--
-------
Rien n'est...
<     1       >

01net > Forum de 01net > Programmation et développement > PHP
> Moteur de recherche

Aller à :

Page générée en : 0.037s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Emploi 
Rémunérations :
30 fiches salaires des métiers informatiques passées au crible  !
Jeux
Nouveauté : Créez des tenues branchées et montrez votre sens du style sur des podiums.