1 2 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<?php
$script_name= "recherche.php";
$limit=2;
mysql_connect("*****", "***", "******"); //connexion à la bdd
mysql_select_db("***");
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables impossible de faire des injonctions
$recherche = trim($recherche);//permet de supprimer les vides avant et après le mot
$mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));
if ($recherche=="") // si $recherche est vide alors $recherche vaut la valeur renvoyé par le lien GET
{
$recherche = $_GET['recherche'];
}
if ($mode=="")
{
$mode = $_GET['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
}
//$mots = explode(" ", $recherche); //séparation des mots
$mots = split(" +",$recherche);
$nombre_mots = count ($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_requete2 .= '' . $and_ou_or . ' description LIKE \'%' . $mots[$nombre_mots_boucle] . '%\'';
$valeur_requete3 .= '' . $and_ou_or . ' content_id LIKE \'%' . $mots[$nombre_mots_boucle] . '%\'';
}
$valeur_requete = ltrim($valeur_requete,$and_ou_or); //suppression de AND ou de OR au début de la boucle
$valeur_requete2 = ltrim($valeur_requete2,$and_ou_or);
$valeur_requete3 = ltrim($valeur_requete3,$and_ou_or);
$counter = mysql_query("SELECT count(*) FROM contenu
WHERE $valeur_requete or $valeur_requete2 or $valeur_requete3
ORDER BY content_id DESC") or die (mysql_error());
$nb_total_bis=mysql_result($counter,0,"count(*)" );
$nombreDePages_bis=ceil($nb_total_bis/$limit);
if(isset($_GET['pages_bis'])) // Si la variable $_GET['pages'] existe...
{
$pageActuelle_bis=intval($_GET['pages_bis']);
if($pageActuelle_bis>$nombreDePages_bis) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle_bis=$nombreDePages_bis;
}
}
else
{
$pageActuelle_bis=1; // La page actuelle est la n°1
}
$premiereEntree_bis=($pageActuelle_bis-1)*$limit; // On calcul la première entrée à lire
$selection_recherche = mysql_query("SELECT * FROM contenu
WHERE $valeur_requete or $valeur_requete2 or $valeur_requete3
ORDER BY content_id DESC limit $premiereEntree_bis,$limit"); //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 "Désolé, la base de données ne contient pas <b>$recherche</b>...";
}
else if ($recherche=="" ) {echo "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur le bouton 'Rechercher' !";}
else if (strlen($recherche)<2) {echo "Veuillez saisir au moins 2 caractères.";}
// AFFICHAGE DES RESULTATS
else
{
$texte="contenant <b>$recherche</b>";
echo "<b>$nb_total_bis</b> réponse";
if ($nb_total_bis>1) {echo "s";}
echo " $texte";
$i=0;
while($i<$nombre_resultats)
{
$dept_id = mysql_result($selection_recherche,$i,"dept_id");
$sous_type_one = mysql_result($selection_recherche,$i,"sous_type_one");
$content_type =mysql_result($selection_recherche,$i,"content_type");
$content_id = mysql_result($selection_recherche,$i,"content_id");
$description=mysql_result($selection_recherche,$i,"description");
$titre=mysql_result($selection_recherche,$i,"titre");
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
{
$rech[]= "#($mots[$nombre_mots_boucle])#i" ; // i permet de conserver la casse
}
$sortie ='<b>$1</b>';
echo "<br><br>";
$result = preg_replace($rech,$sortie,$titre);
echo "<font color =blue>$result</font>";
echo "<br>";
echo preg_replace($rech,$sortie,$description);
echo"<br>";
echo "<a href=\"companyhome.php?"
. "&dept_id=$dept_id&sous_type_one=$sous_type_one&sous_type_two=$content_type&content_id=$content_id&browse_level=details&edit=false\">"
. "voir</a>";
$i++;
}
echo "<br><br>";
for($i=1; $i<=$nombreDePages_bis; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle_bis) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo "<a href='$script_name?&recherche=$recherche&mode=$mode&pages_bis=$i'>$i</a> ";
}
}
}
?> |
Partager