Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1446 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer la phrase complète contenant le mot recherché

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer la phrase complète contenant le mot recherché

n°599478
xkamui
Their Destiny Was Foreordained
Posté le 30-12-2003 à 17:48:41  profilanswer
 

Je fait un rechercher via un formulaire dans un champ blob de ma table 'tablo'.
 
Lorsque mon string 'str' est trouvé dans mon champ 'field' de ma table 'tablo', par cette requête :

Code :
  1. select id from `tablo` where field like '%str%';


J'aimerais qu'il me retourne les mots qui se trouvent avant et après la réponse... comment que je peux faire ??


Message édité par xkamui le 31-12-2003 à 11:54:18
mood
Publicité
Posté le 30-12-2003 à 17:48:41  profilanswer
 

n°599481
MagicBuzz
Posté le 30-12-2003 à 17:52:14  profilanswer
 

une fois que t'as ton résultat, en PHP, tu recherches la position de la chaîne recherchée. Ensuite, tu prends x caractères avant et x caractères après. Tu peux améliorer l'algo pour rechercher les espaces, mais ça devient chaud à faire.
 
J'avais fait ça en ASP, et j'avoue que j'ai bien galèré pour obtenir un truc qui tienne la route...

n°599487
fabien
Vive la super 5 !
Posté le 30-12-2003 à 18:13:25  profilanswer
 

avec une expression reguliere c plus simple...

n°599699
xkamui
Their Destiny Was Foreordained
Posté le 31-12-2003 à 09:29:09  profilanswer
 

fabien a écrit :

avec une expression reguliere c plus simple...


 
tu pourrais dévellopper ??


Message édité par xkamui le 31-12-2003 à 09:29:21
n°599844
Dj YeLL
$question = $to_be || !$to_be;
Posté le 31-12-2003 à 13:31:29  profilanswer
 

J'ai pas tout compris à ta question quand même ...
 
Si tu fais un "select id from" il ne te recupere que l'id non ?
 
Le texte que tu veux récuperer il est où ? Dans le champs field ?
 
Tu ne peux pas plutot faire SELECT id,field FROM 'tablo' WHERE field LIKE '%str%' ?
 
Enfin je dis ça, mais j'ai pas très bien compris ce que tu cherches à faire exactement :(
 
++


---------------
Gamertag: CoteBlack YeLL
n°599869
xkamui
Their Destiny Was Foreordained
Posté le 31-12-2003 à 14:01:39  profilanswer
 

en fait, je récupère exactement ça :  

Code :
  1. SELECT id, rub, srub, nom, texte from `sortie` WHERE texte like '%menu%'


Et ce que je veux c'est chopper les mots qui encadrent le mot 'menu', histoire de remettre menu dans le contexte, pour qu'il ne soit pas pris pour un autre comme par exemple le mot 'menuet' qui répond aux critères de recherche, mais qui ne correspond pas trop :p

n°599872
fabien
Vive la super 5 !
Posté le 31-12-2003 à 14:09:11  profilanswer
 

xkamui a écrit :

en fait, je récupère exactement ça :  

Code :
  1. SELECT id, rub, srub, nom, texte from `sortie` WHERE texte like '%menu%'


Et ce que je veux c'est chopper les mots qui encadrent le mot 'menu', histoire de remettre menu dans le contexte, pour qu'il ne soit pas pris pour un autre comme par exemple le mot 'menuet' qui répond aux critères de recherche, mais qui ne correspond pas trop :p

en php regarde les fonctions comme preg_match http://fr.php.net/preg_match  

n°599883
xkamui
Their Destiny Was Foreordained
Posté le 31-12-2003 à 14:25:46  profilanswer
 

Je viens de regarder preg_match... et je t'avoue que je comprend pas tout...
 
Je vois qu'il faut que je lui donne un 'pattern' du type
'([a-zA-Z0-9]) ([a-zA-Z0-9]) ".$string." ([a-zA-Z0-9]) ([a-zA-Z0-9])' pour qu'il me prenne les deux chaines de caractères qui précédent et qui suivent...
 
mais c'est de l'afficher que je saisi pas...
 
j'ai fait ça, sans grande conviction :  

Code :
  1. $context = preg_match ("[a-zA-Z0-9] [a-zA-Z0-9] ".$str[0]." [a-zA-Z0-9] [a-zA-Z0-9]", $nfo[4]);          <= ligne 105
  2. $txt .= "position : " . $context . "<br />";


et il se trouve que ça ne m'écrit que :

Code :
  1. Warning: Unknown modifier '[' in /www/siteweb/tours-malin.com/htdocs/url/search/search.php on line 105

n°599908
xkamui
Their Destiny Was Foreordained
Posté le 31-12-2003 à 15:26:22  profilanswer
 

si je crois comprendre ce que tu me dis, c'est de rechercher avec preg_match si l'occurence est présente dans mon texte...
 
Cependant, elle est forcément présente, puisqu'elle à été sélectionnée avec ma condition de recherche...
 
donc en faite, ce qu'il me faudrait c'est 'juste' les 4 mots qui l'encadre...
 
je devient fou [:tilleul]  [:toukc]


Message édité par xkamui le 31-12-2003 à 15:36:08
n°599925
fabien
Vive la super 5 !
Posté le 31-12-2003 à 15:43:48  profilanswer
 

xkamui a écrit :

si je crois comprendre ce que tu me dis, c'est de rechercher avec preg_match si l'occurence est présente dans mon texte...
 
Cependant, elle est forcément présente, puisqu'elle à été sélectionnée avec ma condition de recherche...
 
donc en faite, ce qu'il me faudrait c'est 'juste' les 4 mots qui l'encadre...
 
je devient fou [:tilleul]  [:toukc]  

essaye avec la fonction ereg(), ou bien une façon bourin, tu utilise explode() avec comme separateur ton mot.

mood
Publicité
Posté le 31-12-2003 à 15:43:48  profilanswer
 

n°599927
Dj YeLL
$question = $to_be || !$to_be;
Posté le 31-12-2003 à 15:53:04  profilanswer
 

fabien a écrit :

essaye avec la fonction ereg(), ou bien une façon bourin, tu utilise explode() avec comme separateur ton mot.


 
Je suppose que c'est du grand n'importe quoi ça :
$affichage = ereg((.*)(.{10})(son_mot)(.{10})(.*),$toutletexte,\\2\\3\\4);
echo $affichage;
 
J'ai un peu oublié comment marchait les expressions regulieres depuis hier ...
 
Les trucs de base je me debrouille, mais des que ca devient compliqué ... :D
:lol:


---------------
Gamertag: CoteBlack YeLL
n°599931
Dj YeLL
$question = $to_be || !$to_be;
Posté le 31-12-2003 à 15:57:32  profilanswer
 

Euh, je crois que c'est plutot ça en fait :
 
ereg((.*)(.{10})(son_mot)(.{10})(.*),$toutletexte,$affichage);
echo $affichage[2].$affichage[3].$affichage[4];
 
non ?


---------------
Gamertag: CoteBlack YeLL
n°599940
Dj YeLL
$question = $to_be || !$to_be;
Posté le 31-12-2003 à 16:14:27  profilanswer
 

D'ailleurs (on voit que je suis pas expert hein ?) cela suffit peut etre :
 
ereg((.{10})(le_mot)(.{10}),$toutletexte,$aff);
echo $aff[1].$aff[2].$aff[3];
 
$toutletexte etant la valeur récuperée dans ta colonne "texte" de ta BDD.
 
++


Message édité par Dj YeLL le 31-12-2003 à 16:15:02

---------------
Gamertag: CoteBlack YeLL
n°599942
fabien
Vive la super 5 !
Posté le 31-12-2003 à 16:18:51  profilanswer
 

tu sais que la fonction "edit" existe ? :D

n°599943
fabien
Vive la super 5 !
Posté le 31-12-2003 à 16:19:59  profilanswer
 

Dj YeLL a écrit :

D'ailleurs (on voit que je suis pas expert hein ?) cela suffit peut etre :
 
ereg((.{10})(le_mot)(.{10}),$toutletexte,$aff);
echo $aff[1].$aff[2].$aff[3];
 
$toutletexte etant la valeur récuperée dans ta colonne "texte" de ta BDD.
 
++

et puis pourquoi tu limite a 10 caracteres ?

n°599948
Dj YeLL
$question = $to_be || !$to_be;
Posté le 31-12-2003 à 16:22:07  profilanswer
 

Citation :

tu sais que la fonction "edit" existe ?


 
Oui, désolé :D
 

Citation :

et puis pourquoi tu limite a 10 caracteres ?


 
Bah parcequ'il a dit qu'il voulait un peu avant et un peu apres ...
 
Mais sinon c'est pas bon ? Plus dans la forme que dans le fond :p


---------------
Gamertag: CoteBlack YeLL

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer la phrase complète contenant le mot recherché

 

Sujets relatifs
[PHP] Récuperer un code HTML déjà généré ? (explication inside)Récupérer le contenu d'une frame
Recherche editeurs de jeu en flash ou java?récupérer un var d'envir. et l'utiliser dans un makefile
Recherche aide co-webmaster pour site sur le rock (PHP/MYSQL)[OpenGL] recuperer l'adresse d'une texture
[C / C++] Recherche de doc + Prog répartierecherche d'idée de prti pour le bts info/gestion
[PHP] Recherche de scriptrécupérer une liste de connexions réseau ?
Plus de sujets relatifs à : Récupérer la phrase complète contenant le mot recherché


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR