| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 
 | <?php
define ("USER", "root") ;
define ("PASSWORD", "") ;
 
$connexion =  mysql_connect("localhost",USER,PASSWORD)
or exit("Erreur 101") ;
 
 mysql_select_db( "aviatec" , $connexion)
or exit("Erreur 102") ;
 
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 ($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 base_articles WHERE titre LIKE '%$recherche%' 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); //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 . ' 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 base_articles WHERE $valeur_requete ORDER BY id DESC"); //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) //si il n'y a pas de résultat
{
echo 'aucun resultat.<a href="recherche.php">recommencer</a>';
}
else //il y a au moins un resultat
{
echo 'nombre de résultats: ' . $nombre_resultats . ':<br /><br />'; //nombre de résultats
while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les resultats
{
echo '<strong>Numero:</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 a pas validé le formulaire on l'affiche
{
?>
<form method="post" action="recherche.php">
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 />
 
<input type="submit" value="Rechercher" name="rechercher" />
</form>
<?
}
mysql_close(); //deconnexion de la bdd
?> | 
Partager