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


tourismeenbretagne
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 18 Juin 2004

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

Message le Mer Avr 18, 2007 9:44

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: Tout sélectionner
<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: Tout sélectionner
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: Tout sélectionner
<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: Tout sélectionner
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
Dernière édition par tourismeenbretagne le Ven Avr 20, 2007 9:43, édité 1 fois.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: 15 derniers sites et 15 sites les pus visités d'un annua

Message le Mer Avr 18, 2007 15:03

tourismeenbretagne a écrit: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.


thunderfear
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: 12 Oct 2004

Message le Mer Avr 18, 2007 17:35

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";


tourismeenbretagne
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 18 Juin 2004

Message le Ven Avr 20, 2007 9:41

Oopss j'ai trouvé. J'avais oublié d'appeler l'url dans la requêtre sql

Greg :wink:


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité