Légende Freesites :
Gratuit
Sponsorisé
Photos
Vidéos
//moteur de recherche de l'annuaire
//calcul du temps de debut de recherche
$time_deb = microtime();
$time_deb = explode(" ",$time_deb);
$time_deb = $time_deb[0] + $time_deb[1];
//on verifie la taille du mot recherche pour voir si on n'a pas entrer qu'une ou deux lettres
if ($mots == "Votre recherche :")
$mots = "";
$trop_court = false;
if (strlen(stripslashes($mots)) < 3)
//la taille du mot est trop court....
$trop_court = true;
if (!get_magic_quotes_gpc())
//on rajoute des slash pour les magic_quote en OFF
$mots = addslashes($mots);
if (!empty($page)) //si on n'est pas sur la premiere page des resultats
$mots = rawurldecode($mots);
//on separe chaque mot dans un element de tableau
$mots_cherches = explode(" ",$mots);
//liste des mots a rejetter : vous pouvez en rajouter (ils doivent faire au moins 3 caracteres !!!)
$bad_words[] = "";
$bad_words[] = "des";
$bad_words[] = "une";
$bad_words[] = "les";
$bad_words[] = "tes";
$bad_words[] = "mes";
$bad_words[] = "ses";
$bad_words[] = "vos";
$bad_words[] = "nos";
//on enleve les petits mots inutiles
$ln_tab = sizeof($mots_cherches);
for ($i=0;$i<$ln_tab;$i++)
//on compare chaque mot a ceux non voulu
{
if (!is_in_array(trim($mots_cherches[$i]),$bad_words) && strlen($mots_cherches[$i]) > 2)
$mots_reels_recherches[] = $mots_cherches[$i];
}
$nb_mots = sizeof($mots_reels_recherches);
if ($nb_mots > 0 && !$trop_court)
//si on a au moins un mot pour la recherche
{
if (empty($page))
//premiere page
$page = 1;
//debut pour la clause LIMIT de la requete des sites
$debut = ($page - 1) * $nb_results2show;
// Variables $from et $where communes aux requêtes SQL
$from = "$T_sites AS s, $T_categories AS c";
$where = "s.id_cat = c.id AND s.activation = 1 AND c.activation = 1";
//on peut effectuer la requete pour trouver les mots reellement recherches dans les sites et dans les catégories
$sql_sites = "SELECT s.*, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $from WHERE $where AND (";
$cond_sites = "";
//requete pour les sites
for ($i=0;$i<$nb_mots;$i++)
{
if ( $PMA_infos['search_mots_complets'] ) {
$LIKE = "RLIKE";
//$mot_accentue = '[[:<:]]'.trans_accents($mots_reels_recherches[$i]).'[[:>:]]';
$mot_accentue = '[[:<:]]'.($mots_reels_recherches[$i]).'[[:>:]]';
} else {
$LIKE = "LIKE";
$mot_accentue = "%$mots_reels_recherches[$i]%";
};
$cond_sites .= " (titre $LIKE '$mot_accentue' OR description $LIKE '$mot_accentue' OR keyword1 $LIKE '$mot_accentue' OR keyword2 $LIKE '$mot_accentue' OR url LIKE '%$mots_reels_recherches[$i]%') ";
if ($i != ($nb_mots - 1)) //si on n'est pas sur le dernier mot
$cond_sites .= $booleen;
}
$sql_sites .= $cond_sites;
$sql_sites .= ") ORDER BY niveau ASC,titre ASC LIMIT $debut,$nb_results2show ";
// echo 'sel : '.$sql_sites;
if ($page == 1)
//construction des requetes pour le nombre de resultats et la recherche dans les categories
{
//requete pour effectuer la recherche dans les categories
$sql_cats = "SELECT * FROM $T_categories WHERE activation = 1 AND (";
//requete pour trouver le nombre total de sites dans le resultat
$sql_nb_sites = "SELECT count(s.id) AS count FROM $from WHERE $where AND (";
//requete pour les categories
for ($i=0;$i<$nb_mots;$i++)
{
if ( $PMA_infos['search_mots_complets'] ) {
$LIKE = "RLIKE";
//$mot_accentue = '[[:<:]]'.trans_accents($mots_reels_recherches[$i]).'[[:>:]]';
$mot_accentue = '[[:<:]]'.($mots_reels_recherches[$i]).'[[:>:]]';
} else {
$LIKE = "LIKE";
$mot_accentue = "%$mots_reels_recherches[$i]%";
};
$sql_cats .= " (cat_name $LIKE '$mot_accentue' OR texte $LIKE '$mot_accentue') ";
if ($i != ($nb_mots - 1)) //si on n'est pas sur le dernier mot
$sql_cats .= $booleen;
}
$sql_nb_sites .= $cond_sites;
$sql_nb_sites .= ") ";
$sql_cats .= ") ORDER BY cat_name ASC ";
}
//creation de la requete pour aller chercher le nombre de jours pour etre nouveau
$sql_admin = "SELECT nb_days2benew FROM $T_infos ";
//envoi des requetes
$res_admin = send_sql($sql_admin,"trouver le nombre de jour pour etre considere comme nouveau (moteur de recherche)");
$nb_days2benew = mysql_result($res_admin,0,"nb_days2benew");
$res_sites = send_sql($sql_sites,"trouver des résultats pour les sites (moteur de recherche)");
if ($page == 1)
{
$res_nb_sites = send_sql($sql_nb_sites,"trouver le nombre de sites faisant partie du résultat de la recherche");
$res_cats = send_sql($sql_cats,"trouver des résultats pour les catégories (moteur de recherche)");
//on traite les resultats trouves
$nb_cats_trouvees = mysql_num_rows($res_cats);
$nb_sites_trouves = mysql_result($res_nb_sites,0,'count');
}
else
{
$nb_sites_trouves = isset($_GET['nb_sites_trouves']) ? (int)$_GET['nb_sites_trouves'] : 0;
$nb_cats_trouvees = 0; // on affiche les categories trouvees que sur la premiere page de resultats
}
//calcul du nombre de pages
$nb_pages = ceil($nb_sites_trouves / $nb_results2show);
//TIMER
//on calcule le temps de la recherche
$time_fin = microtime();
$time_fin = explode(" ",$time_fin);
$time_fin = $time_fin[0] + $time_fin[1];
$time_search = $time_fin - $time_deb;
if ($page == 1)
{
?>
1)
$recherche = implode(" ",$mots_reels_recherches);
else
{ $recherche = $mots; }
echo stripslashes(htmlspecialchars(ucfirst($recherche)));
?>
Catégorie(s) trouvée(s) :
Freesite(s) trouvé(s) :
$nb_sites_trouves)
$fin = $nb_sites_trouves;
echo ($debut+1)." à ".$fin;
if ($page != 1)
echo " (au total : ".$nb_sites_trouves." sites trouvés)\n";
?>
$nb_results2show)
{
?>
".$i."\n";
}
else{
echo "".$i."\n";
}
}
else
{ echo "$i"; }
echo " - ";
}
//on affiche le dernier numero de page (sans tiret apres)
if ($i == $page)
echo $i;
else
{ echo "".$i."\n"; }
?>
Aucun site n'a été ajouté ces jours.
0)
else //pas de mot demande
{
//creation de la requete d'admin
$sql_admin = "SELECT nb_days2benew, nb_sites_home, nb_sites_on_page, rotation, nb_days_rotation FROM $T_infos ";
$lk = connection_BD();
//envoi de la requete d'admin pour avoir $nb_days2benew
$res_admin = send_sql($sql_admin,"trouver le nombre de jours pour qu'un site soit nouveau");
//traitement du resultat
$result_admin = mysql_fetch_array($res_admin,MYSQL_ASSOC);
$nb_days2benew = $result_admin["nb_days2benew"];
$nb_days_rotation = $result_admin["nb_days_rotation"];
//creation de la requete pour aller chercher les nouveaux sites des X derniers
$sql = "SELECT s.id, url, url_image, titre, description, date_validation, nb_clics, keyword1, keyword2, keyword3, keyword4, niveau, media, c.id as id_cat, cat_name FROM $T_sites s, $T_categories c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND date_validation ORDER BY rand() LIMIT 0,20";
$res = send_sql($sql,"trouver les nouveaux sites (annuaire)");
$d=0;
if (mysql_num_rows($res))
{
$date_test = "";
while ($resultat = mysql_fetch_array($res,MYSQL_ASSOC))
{
if ($d == $nb_days_rotation)
{
echo $result_admin["rotation"];
$d++;
$d=1;
}
else {$d++;}
affiche_site($resultat,"new");
}
require("top_mots_search.php");}
}
echo "
";
include("bas.php");
include("after.php");
?>