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 131 132 133 134 135 136 137 138 139 140 141 142 143 144
| <?php
//=========================================
// initialisation des variables
//=========================================
$nombre = 10;
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0;
// on cherche le nom de la page.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];
//=========================================
// connection à la DB
//=========================================
$link = mysql_connect ($bddserver,$bddlogin,$bddpassword) or die ('Erreur : '.mysql_error() );
mysql_select_db($bdd) or die ('Erreur :'.mysql_error());
//=========================================
// requête SQL qui compte le nombre total
// d'enregistrements dans la table.
//=========================================
$select = 'SELECT count(idannonce) FROM annonces WHERE valid=\'oui\'';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
//=========================================
// vérifier la validité de notre variable
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
if(!$verifLimite) {
$limite = 0;
}
//========================================= affiche les 20 premiers mots des resultats - fonction
function debutchaine($chaine, $nbmots) { // 1er argument : chaîne - 2e argument : nombre de mots
$chaine = preg_replace('!<br.*>!iU', "", $chaine); // remplacement des BR par des espaces
$chaine = strip_tags($chaine);
$chaine = preg_replace('/\s\s+/', ' ', $chaine); // retrait des espaces inutiles
$tab = explode(" ",$chaine);
if (count($tab) <= $nbmots) {
$affiche = $chaine;
} else {
$affiche = "$tab[0]";
for ($i=1; $i<$nbmots; $i++) {
$affiche .= " $tab[$i]";
}
}
$affiche .= ' ...';
return $affiche;
}
//========================================= requetes affichage test
if (isset($_POST['rechercher'])) //si on a validé le formulaire
{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
$motcat = mysql_real_escape_string(htmlspecialchars($_POST['motcat']));
$pays = mysql_real_escape_string(htmlspecialchars($_POST['pays']));
$mode = mysql_real_escape_string(htmlspecialchars($_POST['mode']));
$valid='oui';
if (isset($_POST['sujets_fermes'])) //si on a coché la case
{
$sujets_fermes = "AND valid='oui' AND souscategorie1='$motcat' AND pays='$pays'";//
}
else //si on ne l'a pas cochée
{
$sujets_fermes = "";//AND valid='oui'
}
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 annonces WHERE titre LIKE '%$recherche%' $sujets_fermes ORDER BY idannonce 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 annonces WHERE $valeur_requete $sujets_fermes ORDER BY idannonce 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) //s'il n'y a pas de résultat
{
echo '<span class="font_blanc" align="center">...aucun resultat pour votre recherche.</span>';
}
else //il y a au moins un résultat
{
echo '<div align="center" class="font_blanc">Il y a ' . $nombre_resultats . 'annonce(s) correspondant à votre recherche !</div><br /><br />'; //nombre de résultats
while($resultats = mysql_fetch_array($selection_recherche))
{
echo "<table class=\"contenus2\" width=\"600\" border=\"0\" align=\"center\" cellpadding=\"00\" cellspacing=\"10\" onmouseover=\"javascript:this.style.background='#333333'\" onmouseout=\"javascript:this.style.background='#222222'\" ><div id=\"annoncehaut\"></div> ";
echo '<tr>';
echo '<span class="pomme_vert">'.nl2br(htmlspecialchars(stripslashes($resultats['titre']))).'</span>'."\n";
echo '<td width="19%" valign="top">'.$resultats['pays'].'</td>';
echo '<td width="80%" align="right">Annonce posté par <span class="pomme_vert">' .$resultats['pseudo']."</span> le: <span class='font_blanc'>".$resultats['dateajout']."</span> à<span class='font_blanc'>". $resultats['heureajout']."</span>. Catégorie :<span class='font_blanc'>". $resultats['souscategorie1'].'</span></td>';
echo '</tr>';
echo '<tr>'."\n";
echo '<td rowspan="2" width="19%" valign="top"><a href="http://www.monsite.com/annonces/images/image_annonce/vignette/'. $resultats['vignette']. '" rel="lightbox" title="" border="0" valign="top" width="100%" height="100%" ><img src="http://www.monsite.com/annonces/images/image_annonce/vignette/picto/'. $resultats['vignette']. '" alt=" " style="filter:alpha(opacity=100)" onMouseOver="nereidFade(this,30,30,10)" onMouseOut="nereidFade(this,100,50,10)" border="0"/></a></td>';
echo '<td valign="top" class="font_blanc">';
$mots_complets = $resultats['description']; //data événement
$nb_mots = 20;
$mot_courts = debutchaine($mots_complets, $nb_mots);
echo $mot_courts;
echo '</td>';
echo '</tr>';
echo '<tr>'."\n";
echo '<td align="right"><a href="http://www.monsite.com/annonces/voir_annonce.php?id='.$resultats['idannonce'].'" class="liens_interne"> voir l\'annonce</a></td>';
echo '</tr>';
echo '<tr>'."\n";
echo '<td><img src="http://www.monsite.com/images/spacer.png" alt=" " height="15" width="20" /></td>';
echo '<td><img src="http://www.monsite.com/images/spacer.png" alt=" " height="15" width="20" /></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
}
else echo '<span class="font_blanc" align="center">...aucun resultat pour votre recherche.</span>';
mysql_free_result($result);
// si on a récupéré un resultat on l'affiche.
if($total > $nombre) {
affichePages($nombre,$page,$total);
displayNextPreviousButtons($limite,$total,$nombre,$page);
}
?> |
Partager