Moteur de recherche interne a mettre sur mon
Fermé
jumpai
Messages postés
67
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
25 novembre 2015
-
18 déc. 2011 à 14:28
jumpai Messages postés 67 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 25 novembre 2015 - 19 déc. 2011 à 07:17
jumpai Messages postés 67 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 25 novembre 2015 - 19 déc. 2011 à 07:17
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
- Installer qwant moteur de recherche - Télécharger - Navigateurs
- Stockage interne - Accueil - Guide Android
- Moteur de recherche sans censure - Accueil - Services en ligne
2 réponses
Shymon
Messages postés
145
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 novembre 2012
59
19 déc. 2011 à 03:37
19 déc. 2011 à 03:37
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
jumpai
Messages postés
67
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
25 novembre 2015
19 déc. 2011 à 07:17
19 déc. 2011 à 07:17
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
?>