Moteur de recherche interne a mettre sur mon
jumpai
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
jumpai Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
jumpai Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
Bonjour, a toute l'equipe de commentcamarche .Voila j'ai installer un moteur de recherche interne en PHP sur le site que je suis en train de travailler en local .j'ai intituler plusieur page pour faire un essais avec la recherche en tapant le nom d'une page exemple (action)
et ca ne marche pas est ce normal ou pas voici mon probleme
entre temp je l'est desinstaller et mis cette fois ci un moteur de recherche en html toujour pour aller sur une page de mon site ou en tapant un titre genre le film thor et rien si vous pouviez m'aider se serai vraiment cool je vous remercie d'avance jumpai
et ca ne marche pas est ce normal ou pas voici mon probleme
entre temp je l'est desinstaller et mis cette fois ci un moteur de recherche en html toujour pour aller sur une page de mon site ou en tapant un titre genre le film thor et rien si vous pouviez m'aider se serai vraiment cool je vous remercie d'avance jumpai
A voir également:
- Moteur de recherche interne a mettre sur mon
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Stockage interne autre - Forum Mobile
- Pourquoi mon moteur de recherche change tout seul ✓ - Forum Virus
2 réponses
essaye de rajouter un ; au milieu :D
Non plus sérieusement, comment veux-tu que quelqu'un t'aide : pas de code, pas de détail, ...
Shymon
Non plus sérieusement, comment veux-tu que quelqu'un t'aide : pas de code, pas de détail, ...
Shymon
bonjour et merci pour votre reponse ci dessous je vous mets le script
<?php
mysql_connect("", "", ""); //connexion à la BDD
mysql_select_db("");
if (isset($_POST['rechercher'])) //si on a validé le formulaire
{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
$mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));
if (isset($_POST['sujets_fermes'])) //si on a coché la case
{
$sujets_fermes = "AND ferme='1'";
}
else //si on ne l'a pas cochée
{
$sujets_fermes = '';
}
if ($mode == "tous_les_mots")
{
$and_ou_or = 'AND'; //on utilisera AND dans la boucle
}
else
{
$and_ou_or = 'OR'; //on utilisera OR dans la boucle
}
if ($mode == "expression_exacte") //si le mode de recherche est par expression exacte
{
$selection_recherche = mysql_query("SELECT * FROM recherche WHERE titre LIKE '%$recherche%' $sujets_fermes ORDER BY id DESC");
}
else //si le mode de recherche n'est pas par expression exacte
{
$mots = explode(" ", $recherche); //séparation des mots
$nombre_mots = count ($mots); //comptage du 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 incrémentant à chaque fois le nombre de mots
{
$valeur_requete .= '' . $and_ou_or . ' titre 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 *
FROM recherche
WHERE $valeur_requete $sujets_fermes ORDER BY id DESC"); //requête contenant le résultat de la boucle
}
$nombre_resultats = mysql_num_rows($selection_recherche); //comptage du 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 résultat. <a href="recherche.php">Recommencer</a>';
}
else //il y a au moins un résultat
{
echo 'Nombre de résultats : ' . $nombre_resultats . ':<br /><br />'; //nombre de résultats
while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les résultats
{
echo '<strong>Numéro :</strong> ' . $resultats['id'] . '<br />
<strong>Titre :</strong> ' . $resultats['titre'] . '<br />
<strong>Fermé :</strong> ' . $resultats['ferme'] . '<br /><br />';
}
echo '<a href="recherche.php">Recommencer</a>';
}
}
else //si on n'a pas validé le formulaire, on l'affiche
{
?>
<form method="post" action="recherche.php">
<div>
Votre recherche :
<input type="text" name="recherche" />
<br />
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>
<br />
Sélectionner uniquement les sujets fermés :
<input name="sujets_fermes" type="checkbox" />
<br />
<input type="submit" value="Rechercher" name="rechercher" />
</div>
</form>
<?php
}
mysql_close(); //déconnexion de la BDD
?>
<?php
mysql_connect("", "", ""); //connexion à la BDD
mysql_select_db("");
if (isset($_POST['rechercher'])) //si on a validé le formulaire
{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
$mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));
if (isset($_POST['sujets_fermes'])) //si on a coché la case
{
$sujets_fermes = "AND ferme='1'";
}
else //si on ne l'a pas cochée
{
$sujets_fermes = '';
}
if ($mode == "tous_les_mots")
{
$and_ou_or = 'AND'; //on utilisera AND dans la boucle
}
else
{
$and_ou_or = 'OR'; //on utilisera OR dans la boucle
}
if ($mode == "expression_exacte") //si le mode de recherche est par expression exacte
{
$selection_recherche = mysql_query("SELECT * FROM recherche WHERE titre LIKE '%$recherche%' $sujets_fermes ORDER BY id DESC");
}
else //si le mode de recherche n'est pas par expression exacte
{
$mots = explode(" ", $recherche); //séparation des mots
$nombre_mots = count ($mots); //comptage du 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 incrémentant à chaque fois le nombre de mots
{
$valeur_requete .= '' . $and_ou_or . ' titre 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 *
FROM recherche
WHERE $valeur_requete $sujets_fermes ORDER BY id DESC"); //requête contenant le résultat de la boucle
}
$nombre_resultats = mysql_num_rows($selection_recherche); //comptage du 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 résultat. <a href="recherche.php">Recommencer</a>';
}
else //il y a au moins un résultat
{
echo 'Nombre de résultats : ' . $nombre_resultats . ':<br /><br />'; //nombre de résultats
while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les résultats
{
echo '<strong>Numéro :</strong> ' . $resultats['id'] . '<br />
<strong>Titre :</strong> ' . $resultats['titre'] . '<br />
<strong>Fermé :</strong> ' . $resultats['ferme'] . '<br /><br />';
}
echo '<a href="recherche.php">Recommencer</a>';
}
}
else //si on n'a pas validé le formulaire, on l'affiche
{
?>
<form method="post" action="recherche.php">
<div>
Votre recherche :
<input type="text" name="recherche" />
<br />
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>
<br />
Sélectionner uniquement les sujets fermés :
<input name="sujets_fermes" type="checkbox" />
<br />
<input type="submit" value="Rechercher" name="rechercher" />
</div>
</form>
<?php
}
mysql_close(); //déconnexion de la BDD
?>