[réglé] 15 derniers sites & sites les plus visités d'1 a

WRInaute discret
Bonjour,

J'aimerais afficher les :

- 15 derniers sites
- 15 sites les plus visités

de mon annuaire dans une colonne sur l'ensemble du site.

J'y suis arrivé pour les 15 sites les plus visités mais ça coince pour les 15 derniers sites. En effet, l'url affichée renvoit vers mon site ?

Voici mes codes :

Pour le Top clics, ajout de ce bout de code au lieu d'insertion

Code:
<span class="date_validation_site_annuaire">
<b>Top 15 des clics</b>
</span>
<br>
<?php
//script permettant d'afficher les meilleurs sites ayant eu le plus de visites

//creation de la requete d'admin
$sql_admin = "SELECT nb_sites_in_topclics, nb_days2benew FROM $T_infos ";
//connexion a la BD
$lk = connection_BD();
//envoi de la requete
$res_admin = send_sql($sql_admin,"trouver le nombre de sites que contiendra le Top clics");

//traitement du resultat
$result_admin = mysql_fetch_array($res_admin,MYSQL_ASSOC);
$nb_sites_top_clics = $result_admin["nb_sites_in_topclics"];
$nb_days2benew = $result_admin["nb_days2benew"];

//creation de la requete pour les sites
$sql = "SELECT s.id, id_cat, titre, description, url, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,15";
//envoi de la requete
$res = send_sql($sql,"trouver les sites du Top clics");
//fin de la connexion
mysql_close($lk);

?>

<?
if (mysql_num_rows($res))
//si on a des resultats
{
	echo "<table border=0 >\n";
	$position=1;
	while ($resultat = mysql_fetch_array($res))
	{
		affiche_menu_clics($resultat);
		$position++;
	}
	echo "</table>\n";
}
else //pas de resultat
{
	
}
?>

Dans functions.php, ajout de ce bout de code :

Code:
function affiche_menu_clics($resultat)
{
global $PMA_infos,$nb_days2benew,$position;
echo"<a href=\"$resultat[url]\" onmousedown=\"return clk('$resultat[id]')\" title=\"$resultat[titre]\" target=\"_blank\" class=\"titre_site_annuaire\">$resultat[titre]</a><br>";
}

Pour les Derniers Liens, ajout de ce bout de code au lieu d'insertion

Code:
<span class="date_validation_site_annuaire">
<b>15 Derniers sites</b>
</span>
<br>
<?php
//affichages des resultats
//page affichant les nouveautes de la derniere semaine

//creation de la requete d'admin
$sql_admin = "SELECT nb_days2benew FROM $T_infos ";
//connexion a la BD
$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"];
//creation de la requete pour aller chercher les nouveaux sites des X derniers
$sql = "SELECT s.id, titre, url, description, date_validation, nb_clics, 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 BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL $nb_days2benew DAY) AND DATE_SUB(CURRENT_DATE,INTERVAL 0 DAY) ORDER BY date_validation DESC,niveau ASC,titre ASC limit 0,15";
//envoi de la requete
$res = send_sql($sql,"trouver les nouveaux sites (annuaire)");
//fin de la connexion
mysql_close($lk);
if (mysql_num_rows($res))
//si on a des resultats
{
	$date_test = ""; //pour la comparaison dans le while
	while ($resultat = mysql_fetch_array($res,MYSQL_ASSOC))
	{
		//on convertit la date en version francaise
		$date_convertie = convert_date_us2fr($resultat["date_validation"]);
		if ($date_test != $date_convertie)
		//changement de date => on affiche le jour
		{
			//separateur
			if (!empty($date_test))
				
			//conservation de la date pour la prochaine comparaison
			$date_test = $date_convertie;
			//on affiche la date
			?>
			
			<?
		}
		affiche_menu_nouveau($resultat);
	}//fin while
} //fin if
else //pas de resultat
{
	
}

?>

Dans functions, ajout de :

Code:
function affiche_menu_nouveau($resultat)
{
global $PMA_infos,$nb_days2benew,$position;

echo"<a href=\"$resultat[url]\" onmousedown=\"return clk('$resultat[id]')\" title=\"$resultat[titre]\" target=\"_blank\" class=\"titre_site_annuaire\" >$resultat[titre]</a><br>";
}

Pour mieux vous rendre compte : http://www.itinerances.info/

Merci d'avance pour le petit coup de main :wink:

Greg

edit : Code corrigé pour ceux que ça intéressent
 
WRInaute accro
Re: 15 derniers sites et 15 sites les pus visités d'un annua

tourismeenbretagne a dit:
J'y suis arrivé pour les 15 sites les plus visités mais ça coince pour les 15 derniers sites. En effet, l'url affichée renvoit vers mon site ?
Je ne vois pas le problème ou alors je ne comprends pas.
 
WRInaute discret
Salut,

Essayez ca?

$sql = "SELECT s.id, id_cat, titre, description, s.url, nb_clics, date_validation, cat_name, TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites AS s, $T_categories AS c WHERE s.id_cat = c.id AND s.activation = 1 AND c.activation = 1 AND nb_clics > 0 ORDER BY nb_clics DESC,titre LIMIT 0,15";
 
Discussions similaires
Haut