recherche sur uen page

recherche sur uen page - PHP - Programmation

Marsh Posté le 10-03-2005 à 10:51:53    

bonjour,
 
j'ai une page ou je fais des recherches selon différents critères et j'ai une textbox.
quand je fais "OK", ce la s'affiche sous forme de tableaux...
quand je tape un mot j'aimerais que cela recherche dans ma page ce mot.
comment je peux faire ca?
 
j'avais essayé de faire un moteur de recherche pour rechercher directement dans la bdd et en fait j'avais des problèmes, donc j'ai abandonné l'affaire et j'ai pensé que peut-être ca serait plus simple de faire une recherche sur la page...
 
merci en attendant;)
 
a bientot...   :hello:  

Reply

Marsh Posté le 10-03-2005 à 10:51:53   

Reply

Marsh Posté le 10-03-2005 à 10:53:01    

ctrl-f ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 10-03-2005 à 10:55:48    


 
nan je connais ca...
mais je souhaite faire ca en php pour mon site!! lol
comment coder ca?"un moteur de recherche" qui recherche les occurences sur la pages...


---------------
/!\ .:|:. ZeaL21 .:|:. /!\ //GO FORUM : http://docaze21.free.fr
Reply

Marsh Posté le 10-03-2005 à 10:59:42    

ben un fopen, fgets sur la page en question, ça va bien te stocker tout son contenu dans une variable non ?
après avec strpos et les autres fonctions sur les chaines doit y avoir moyen de rechercher, trouver le nb de fois ...etc...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 10-03-2005 à 11:01:31    

hohoho !!
un highlighter dans la page courante ne suffait pas ???


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 10-03-2005 à 11:04:36    

KangOl a écrit :

hohoho !!
un highlighter dans la page courante ne suffait pas ???


 
pkoi pas, j'aime bien tuer les mouches au bazouka...http://webxav.chez.tiscali.fr/gif/src1/claironline.gif


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 10-03-2005 à 11:06:27    

euh....je sais pas ce que c'est un hightlighter...
je suis encore un newbie en matière de php ca fait quelques semaines que je m'y met.... :ange:  
 
mais en fait, ca sera surement un peu plus compliqué, mais ce que j'aimerais, ca serait que cela recherche dans la page le mot concerné et que cela n'affiche(toujours sous forme d'un tableau) que les éléments correspondant a cette occurence?vous voyez? :ange:  :ouch:  :pt1cable:  
 
si vous voulez un exemple dites le moi  ;)  


---------------
/!\ .:|:. ZeaL21 .:|:. /!\ //GO FORUM : http://docaze21.free.fr
Reply

Marsh Posté le 10-03-2005 à 11:08:28    

dans ce cas si tu veux restreindre l'affichage, faut jouer avec une base de donnée...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 10-03-2005 à 11:10:18    

En effet, je pige pas tout, tu veux rechercher dans une page "déjà affichée", ou dans une page "à afficher" ?
Les "éléments correspondants" c'est quoi, les pages qui contiennet le mot, les phrases qui contiennent le mot ???


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 10-03-2005 à 11:24:35    

ok je m'explique mieux!! lol
 
j'ai des utilisateurs qui peuvent voir des incidents informatiques. sur la page consultation, il peuvent voir selon différents critères:

  • selon des listes déroulantes comprenant le statut, le correcteur, la catégorie de ces incidents
  • selon (et c'est la mon problème) une textbox. Ici, il mettrait une sous catégorie.


les utilisateur arrivent directement sur la page consultation avec tous les incidents d'afficher  
 
ma première solution c'était de faire un moteur de recherche sans créer de table mot-clé comme la plupart des moteurs de recherche, mais que ca aille recherché directement dans la table incident!mais j'ai rencontré des problèmes diverses...(non exécution de la requete, pas d'affichage,...
 
donc ensuite j'ai pensé a faire cette solution...
c'est a dire je recherche l'occurrence dans la page et après ca m'affiche tous les incidents correspondant a cette occurrence...
 
la ca fait depuis le debut de la semaine que je planche sur la 1ere solution... :pt1cable:  
 
merci ;)
 
ca va mieux?lol


---------------
/!\ .:|:. ZeaL21 .:|:. /!\ //GO FORUM : http://docaze21.free.fr
Reply

Marsh Posté le 10-03-2005 à 11:24:35   

Reply

Marsh Posté le 10-03-2005 à 11:27:42    

bha mon ta requete... on peut essayer de voir ce qui ne va pas...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 10-03-2005 à 11:32:48    

je vous montre ce que j'ai fait par rapprot a la 1ere soluce!

Code :
  1. <?
  2. $remplitab= "SELECT ID_INC, DESCRIPTION, ID_CATEG, ID_SS_CATEG, ID_COR, STATUT, DATE_OPEN, DATE_CLOSE, SOLUTION from incidents WHERE ";
  3. if( !empty( $correcteur )){
  4.  $remplitab .= "ID_COR='$correcteur' AND ";
  5. }
  6. if( !empty( $categ )){
  7.  $remplitab .= "ID_CATEG='$categ' AND ";
  8. }
  9.   /******* MOTEUR DE RECHERCHE *******/
  10.   $ss_categ = $_POST['ss_categ'];
  11. //découpage de la chaîne avec les espaces, sélection de tous les mots   
  12.   if (!empty($ss_categ)){
  13.     $tab = split(" ",$ss_categ);
  14.  $nb_tab = count($tab);
  15.  $critere = "LIB_SS_CATEG LIKE '%$tab[0]%'";
  16.  $z = 1;
  17.  while($z < $nb_tab){
  18.    $critere .= " AND LIB_SS_CATEG LIKE '%$tab[$z]%'";
  19.    $z++;
  20.   } //fin WHILE
  21. //nb d'enregistrements répondant à la requête sur 'sous_categorie'
  22.     $pQuery = $db->query_Read_Database("SELECT ID_SS_CATEG FROM sous_categorie, incidents WHERE sous_categorie.ID_SS_CATEG = incidents.ID_SS_CATEG AND $critere" );
  23. //affichage des résultats
  24.     if ($db->nb_rows($pQuery) > 1){
  25.       while($row = $db->result_array($pQuery)){
  26.         $id_ss_categ = $row['ID_SS_CATEG'];
  27.         $lib_ss_categ = $row['LIB_SS_CATEG'];
  28.         $remplitab .= " ID_SS_CATEG='$id_ss_categ' AND LIB_SS_CATEG='$lib_ss_categ' AND ";
  29.         unset ($critere);
  30.       } //fin du WHILE
  31.     } //fin du IF affichage des résultats  
  32.   } //fin du if 'ss_categ' pas vide
  33.  
  34. /******* FIN MOTEUR DE RECHERCHE *******/
  35. if( !empty( $statut )){
  36.  $remplitab .= "STATUT='$statut' AND";
  37. }
  38.   $remplitab .= " 1 ORDER BY ID_INC";
  39. $pQuery = $db->query_Read_Database( $remplitab );


 
cela vous montre requete pour remplir le tableau
ma table incidents se compose de la sorte: id_inc,description, id categ, id sous categ,nom user, id correcteur, date open, date close, solution.
 
et mon souci je pense que ca vient de la jointure.....
 
 


---------------
/!\ .:|:. ZeaL21 .:|:. /!\ //GO FORUM : http://docaze21.free.fr
Reply

Marsh Posté le 10-03-2005 à 14:37:31    

bon vu que c'est dans le cadre de mon stage j'ai demandé de l'aide...
et en fait, le gars veut que la recherche se fasse sur la description ou la solution de l'incident...
j'ai refait ma requête mais ca ne fonctionne pas
je n'ai ni de messages d'erreur, même pas dans le code source de la page...et ca m'affiche tous les incidents...
Je vous file le code...

Code :
  1. /******* MOTEUR DE RECHERCHE *******/
  2.   $ss_categ = $_POST['ss_categ'];
  3. //découpage de la chaîne  
  4.   if (!empty($ss_categ)){
  5.     $tab = split(" ",$ss_categ);
  6.     $nb_tab = count($tab);
  7.  $z = 0;
  8.  while($z < $nb_tab){
  9.       $pQuery = $db->query_Read_Database("SELECT DESCRIPTION, SOLUTION FROM incidents WHERE DESCRIPTION='%$tab[$z]%' OR SOLUTION='$tab[$z]%'" );
  10.       while($inc = $db->result_array($pQuery)){
  11.         $description = $inc['DESCRIPTION'];
  12.         $solution = $inc['SOLUTION'];
  13.       $remplitab .= " DESCRIPTION='$description' OR SOLUTION='$solution' AND ";
  14.       }
  15.       $z++;
  16.   } //fin WHILE  
  17.   } //fin du if 'ss_categ' pas vide
  18.  
  19. /******* FIN MOTEUR DE RECHERCHE *******/


 
ce n'est que ma partie pour rechercher
$remplitab est une variable qui permet de sélectionne éléments dans la table 'incident" et remplit le tableau de ma page...
 
si vous pouvez m'aider...
merci ;)


---------------
/!\ .:|:. ZeaL21 .:|:. /!\ //GO FORUM : http://docaze21.free.fr
Reply

Marsh Posté le 10-03-2005 à 16:27:38    

C'est bon j'ai résolu le problème...
c'était tout con et je suis parti en couille..... lol
 
a bientot....


---------------
/!\ .:|:. ZeaL21 .:|:. /!\ //GO FORUM : http://docaze21.free.fr
Reply

Sujets relatifs:

Leave a Replay

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