hadjiphp
Messages postés30Date d'inscriptiondimanche 11 janvier 2009StatutMembreDernière intervention12 juin 2009
-
5 mai 2009 à 21:35
Tarble
Messages postés591Date d'inscriptionmercredi 29 septembre 2010StatutMembreDernière intervention27 avril 2016
-
5 mai 2009 à 21:42
Bonjour,
j'ai une question :
j'ai un code php qui permet de faire un recherche dans la base de donnée (un moteur de recherche)
if( preg_match_all('`\w{2,}`', $champs1, $result) )
{
// Remplacement des mots exclus par rien
$result[0] = preg_replace('`\b(' . implode($motsExclus, '|') . ')\b`i', '', $result[0]);
// Suppression des éléments vides avec array_filter()
$result[0] = array_filter($result[0]);
}
$champs11=implode(" ", $result[0]);
echo ("$champs11"); print"
";
$mots = explode(" ", $champs11); //séparation des mots reprtésentation sous forme d'un tableau
$nombre_mots = count ($mots); //compte le nombre de mots
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant le nombre de mots de 1 à chaque fois
{
$valeur_requete .= '' . $and_ou_or . ' terme LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valeur_requete
}
$valeur_requete = ltrim($valeur_requete,$and_ou_or); //suppression de AND ou de OR au début de la boucle
$selection_recherche = mysql_query("SELECT url,titre,terme,occure
FROM result
WHERE $valeur_requete $sujets_fermes"); //requête avec le résultat de la boucle dedans
}
$nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche
if ($nombre_resultats == 0) //s'il n'y a pas de résultat
{
echo 'aucun resultat.[recherche.php recommencer]';
}
else //il y a au moins un résultat
{
echo 'nombre de résultats: ' . $nombre_resultats . ':
';
}
echo '[recherche.php recommencer]';
}
}
else //si on n'a pas validé le formulaire, on l'affiche
{
?>
<form method ="post" action="recherche.php">
Votre recherche :
Votre mode de recherche :
<select name="mode">
<option value="expression_exacte">Expression exacte</option>
<option value="tous_les_mots">Tous les mots</option>
<option value="un_mot">Au moins un mot</option>
</select>
Sélectionner uniquement les sujets fermés :
</form>
<?php
}
mysql_close(); //déconnexion de la bdd
?>
ma question et quand je fait ma recherche, si le nombre de resultat par exemple est 16 elle affiche :
nombre de résultats: 16
mais elle affiche seulement 15 resultat (Terme: alger
URL:
OCCURENCE:
Titre: )
c_à-d a chaque recherche elle affiche "nombre de résultats: n"
mais affiche seulement n-1 recultat.