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 ;)
$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 !
?>