Bonsoir tout le monde.
J' ai un petit souci, je me suis basé sur un tuto pour faire un moteur de recherche interne. Il est plutot simple mais il fonctionne bien a un detail prés. On ne peut mettre plus d' un mot clé, sous peine de n' avoir aucun résultat.
Je ne sais pas trop quoi faire pour remédier a ca, je vous montre le piti bout tout simple:
Merci d' avance pour le coup de main, je suis perdu
edit: je sais pas si c' est normal, mon code n' apparait pas en entier
Modifié par graffx (20 Dec 2009 - 23:17)
J' ai un petit souci, je me suis basé sur un tuto pour faire un moteur de recherche interne. Il est plutot simple mais il fonctionne bien a un detail prés. On ne peut mettre plus d' un mot clé, sous peine de n' avoir aucun résultat.
Je ne sais pas trop quoi faire pour remédier a ca, je vous montre le piti bout tout simple:
<?
if(isset($_POST['requete']) && $_POST['requete'] != NULL) // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
{
$requete = htmlspecialchars($_POST['requete']); // on crée une variable $requete pour faciliter l'écriture de la requête SQL, mais aussi pour empêcher les éventuels malins qui utiliseraient du PHP ou du JS, avec la fonction htmlspecialchars().
$query = mysql_query("SELECT * FROM annonces WHERE titre LIKE '%$requete%'
OR annonce like '%$requete%'
OR auteur like '%$requete%'
ORDER BY id DESC") or die (mysql_error()); // la requête, que vous devez maintenant comprendre <img src="http://forum.phpfrance.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" />
$nb_resultats = mysql_num_rows($query); // on utilise la fonction mysql_num_rows pour compter les résultats pour vérifier par après
if($nb_resultats != 0) // si le nombre de résultats est supérieur à 0, on continue
{
// maintenant, on va afficher les résultats et la page qui les donne ainsi que leur nombre, avec un peu de code HTML pour faciliter la tâche.
?>
</p>
<h3 align="center">Résultats de votre recherche.</h3>
<p>Nous avons trouvé <? echo $nb_resultats; // on affiche le nombre de résultats
if($nb_resultats > 1) { echo ' résultats'; } else { echo ' résultat'; } // on vérifie le nombre de résultats pour orthographier correctement.
?> dans notre base de données. Voici les fonctions que nous avons trouvées :<br/>
<br/>
<?
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
{
?>
<a href="annonces_c.php?pseudo=<?php echo $_SESSION['pseudo']; ?>&id=<? echo $donnees['id']; ?>"><? echo $donnees['titre']; ?></a><br/>
<?
} // fin de la boucle
?>
<br/>
<br/>
<a href="rechercher.php">Faire une nouvelle recherche</a></p>
<?
} // Fini d'afficher les résultats ! Maintenant, nous allons afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
else
{ // de nouveau, un peu de HTML
?>
<h3 align="center">Pas de résultats.</h3>
<p align="center">Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". </p>
<p align="center"><a href="annonces.php?pseudo=<?php echo $_SESSION['pseudo']; ?>">Réessayez</a> avec autre chose.</p>
<p>
<?
}// Fini d'afficher l'erreur ^^
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
else
{ // et voilà le formulaire, en HTML de nouveau !
?>
<?
}
// et voilà, c'est fini !
?>
Merci d' avance pour le coup de main, je suis perdu

edit: je sais pas si c' est normal, mon code n' apparait pas en entier

Modifié par graffx (20 Dec 2009 - 23:17)