Se connecter avec
S'enregistrer | Connectez-vous

Aide pour moteur de recherche. (edit - recherche quelqu'un pour...)

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Recrutement interdit sur IDN !

Par contre vu la simplicité de ce que tu veux faire , tu ne sais pas faire un simple select à partir de la valeur entrée dans l'input (type text) ?

Si au moins on parlerait de notion d'indexation et de caching...

Ce que je veux dire Jeremy c'est qu'en gros ce que tu veux faire n'est qu'un simple formulaire de recherche pointant sur une table qui te retourne l'ID des records correspondant à un simple 'like' sur un ou plusieurs champs. Il suffit juste ensuite de faire une simple page listant tout les hyperliens vers la/les pages descriptives.

j'ai fait comme tu ma dit mais il trouve aucun résultats !!

regarde: http://doc-du-net.freehostia.com/rechercher.php


le script:


  1. <?
  2. if(isset($_POST['requete']) && $_POST['requete'] != NULL)
  3. {
  4. mysql_connect('mysql4.freehostia.com','jrmgaf_news','******');
  5. mysql_select_db('jrmgaf_news');
  6. $requete = htmlspecialchars($_POST['requete']);
  7. $query = mysql_query("select * from vidim where titre like '%qqch%' or contenu like '%qqch%' ") or die (mysql_error()); // la requête, que maintenant vous devez comprendre ;)
  8. $nb_resultats = mysql_num_rows($query);
  9. if($nb_resultats !=0)
  10. {
  11. // Achichage résusltat
  12. ?>
  13. <h3>Résultats de la recherche.</h3>
  14. <p>Nous avons trouvé <? echo $nb_resultats;
  15. if($nb_resultats > 1) { echo 'résultats'; } else { echo 'résultat'; } // on vérifie le nombre de résultats pour orthographier correctement.
  16. ?>
  17. dans notre base de données. Voici les fonctions que nous avons trouvé :<br/>
  18. <br/>
  19. <?
  20. while($donnees = mysql_fetch_array($query)) // on fait un while pour afficher la liste des fonctions trouvées, ainsi que l'id qui permettra de faire le lien vers la page de la fonction
  21. {
  22. ?>
  23. <a href="fonction.php?id=<? echo $donnees['id']; ?>"><? echo $donnees['nom_fonction']; ?></a><br/>
  24. <?
  25. } // fin de la boucle
  26. ?><br/>
  27. <br/>
  28. <a href="rechercher.php">Faire une nouvelle recherche</a></p>
  29. <?
  30. } // fini d'afficher les résultats ! Maintenant, nous allons afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
  31. else
  32. {
  33. ?>
  34. <h3>Pas de résultats</h3>
  35. <p>Nous n'avons trouvé aucun résultats "<? echo $_POST['requete']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
  36. <?
  37. }// fini d'affichage erreur
  38. mysql_close(); // on ferme mysql
  39. }
  40. else
  41. { // le formulaire
  42. ?>
  43. <form action="rechercher.php" method="Post">
  44. <input type="text" name="requete" size="17">
  45. <input type="submit" value="Ok">
  46. </form>
  47. <?
  48. }
  49.  
  50. ?>

Je pense qu'il faudrait peut-être injecter ceci dans la requête ... $_POST['requete'].

%qqch% n'était qu'un exemple. % signifie 0 à n caractère et qqch étant simplement une abréviation .

mysql_query("select * from vidim where titre like '%".$_POST['requete']."%' or contenu like '%".$_POST['requete']."%' " )

  1. # <?
  2. # while($donnees = mysql_fetch_array($query)) // on fait un while pour afficher la liste des fonctions trouvées, ainsi que l'id qui permettra de faire le lien vers la page de la fonction
  3. # {
  4. # ?>
  5. # <a href="fonction.php?id=<? echo $donnees['id']; ?>"><? echo [b]$donnees['titre']; [/b]?></a><br/>
  6. # <?
  7. # } // fin de la boucle
  8. # ?>


nom_fonction n'est pas un champ existant dans la table.

Voila tout fonctionne bien, mais le dernier problème maintenant c'est que je voudrais juste mettre le formulaire de recherche dans une include dans mon site et qu'il ouvres les résultats dans une nouvelle page. (mais sa marche pas)

regardez:
http://s226898883.onlinehome.fr/doc-du-net/index.php

Quand vous tapé exemple guerre il m'afiche rien. il reste sur index.
Le code es:

  1. <form action="rechercher.php" method="Post">
  2. <input type="text" name="requete" size="17">
  3. <input type="submit" value="Cherche">
  4. </form>


Voila c'est simple je veux juste que quand ont clique sur cherche il m'ouvre les résultat dans la page: rechercher.php



Mon code rechercher.php

  1. <?
  2. if(isset($_POST['requete']) && $_POST['requete'] != NULL)
  3. {
  4. mysql_connect('','','');
  5. mysql_select_db('');
  6. $requete = htmlspecialchars($_POST['requete']);
  7. $query = mysql_query("select * from vidim where titre like '%".$_POST['requete']."%' or contenu like '%".$_POST['requete']."%' ") or die (mysql_error()); // la requête, que maintenant vous devez comprendre ;)
  8. $nb_resultats = mysql_num_rows($query);
  9. if($nb_resultats !=0)
  10. {
  11. // Achichage résusltat
  12. ?>
  13. <h3>Résultats de la recherche.</h3>
  14. <p>Nous avons trouvé <? echo $nb_resultats;
  15. if($nb_resultats > 1) { echo 'résultats'; } else { echo 'résultat'; } // on vérifie le nombre de résultats pour orthographier correctement.
  16. ?>
  17. dans notre base de données :<br/>
  18. <br/>
  19. <?
  20. while($donnees = mysql_fetch_array($query) ) // on fait un while pour afficher la liste des fonctions trouvées, ainsi que l'id qui permettra de faire le lien vers la page de la fonction
  21. {
  22. ?>
  23. <a href="vidim_lire.php?id=<? echo $donnees['id']; ?>"><? echo $donnees['titre']; ?></a></br><br><? echo substr($donnees['contenu'],0,70); ?><span style="font-style: italic; font-weight: bold;">...</span></br><br>
  24. <?
  25. } // fin de la boucle
  26. ?><br/>
  27. <br/>
  28. <a href="rechercher.php">Faire une nouvelle recherche</a></p>
  29. <?
  30. } // fini d'afficher les résultats ! - afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
  31. else
  32. {
  33. ?>
  34. <h3>Pas de résultats</h3>
  35. <p>Nous n'avons trouvé aucun résultats "<? echo $_POST['requete']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
  36. <?
  37. }// fini d'affichage erreur
  38. mysql_close(); // ferme mysql
  39. }
  40. else
  41. { // le formulaire
  42. ?>
  43. <form action="rechercher.php" method="Post">
  44. <input type="text" name="requete" size="17">
  45. <input type="submit" value="Cherche">
  46. </form>
  47. <?
  48. }
  49.  
  50. ?>


Voila merci de votre aide.
Expert Programmation

je sais pas ce que tu as trifouiller, mais rien de tel que de fouiller dans la source de la page afin de voir pourquoi tu reste sur index.php aulieu de rechercher.php , voici ce que j'ai trouvé :

<form action="#" id="search">

<p><label for="q"></label> <center><form action="rechercher.php" method="Post" target="rechercher.php">
<input type="text" name="requete" size="17">
<input type="submit" value="Cherche">
</form></center></center></br><br></p>

</form>

tu ne remarque rien de bizzar ? ;o)

  1. <form [b]action="#"[/b] id="search">
  2.  
  3. <p><label for="q"></label> <center><form action="rechercher.php" method="Post" target="rechercher.php">
  4. <input type="text" name="requete" size="17">
  5. <input type="submit" value="Cherche">
  6. </form></center></center></br><br></p>
  7.  
  8. </form>


Deux balises form imbriquées l'une dans l'autre, avec en plus une action ne pointant sur aucune page.

Merci Okinou !

<form action="rechercher.php" id="search">

<p><label for="q"></label> <center><form action="rechercher.php" method="Post" target="rechercher.php">
<input type="text" name="requete" size="17">
<input type="submit" value="Cherche">
</form></center></center></br><br></p>
</form>

Sa serais sa alors ?

la je suis perdu je trouve pas !
Expert Programmation

ce n'est pas à toi de me remercier riimii mais ca fait toujours plaisir, j'aurais préféré que l'erreur html soit flagrante pour notre ami jeremy qui, si il connaissait un peut mieux le html de base aurait tout de suite été se pendre vu la faute, et ou l'on ne peut pas dire le contraire, saute au nez. ;oP
Expert Programmation

je clos, apprend le HTML (j'ai du te le dire des dizaine de fois depuis que tu post ici) avant de t'occuper du php.

ps: je clos pour ta demande sur la recherche d'une personne vu que le recrutement est interdit ici.

ps2: je fais pas les règles.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde