Aide - Recherche - Membres - Calendrier
Version complète : Affichage des derniers sites inscrits
Utilisable > Annuaire rémunérateur Utilisable > Le script de l'annuaire Utilisable > Astuces et idées
Williams
Voila sur le coin des forums et son annuaire , j'ai reussi a afficher sur ma page index du site , les derniers forums inscrit dans l'annuaire. Le critere d'affichage se gere par la date d'inscription. Si j'ai 50 sites qui s'inscrivent dans la journée : bonjour la longueur de ma page de garde.

Je voudrai faire afficher les 5 derniers sites inscrits. Je vois bien un tri sur l'Id de la table site_annuaire en decroissant et de selectionner les 5 derniers. J'y arrive en requette sql pure mais j'ai du mal a l'integrer sur le php (que je ne maitrise pas).

Voici ma requette sql
Citation
$sql = 'SELECT `id` '
        . ' FROM `sites_annuaire` '
        . ' ORDER BY `sites_annuaire`.id DESC '
        . ' LIMIT 0 , 5';


Y aurait-il un "Pro" pour m'aider ? thumbsup.gif

Lmm
Rikaix
Bonjour,

ouvre nouveaux.php et (renomme le ) "sauver sous" nouveaux2.php , il suffira alors de faire un include de "nouveaux2.php" dans ta page à l'endroit ou tu veux que ça s'affiche

Code
<? include ("nouveaux2.php"); ?>


nouveaux2php doit être modifié comme suit

en commentant par un double / (//) en début de ligne , donc , devant les lignes 17, 19
90 et 93
(avant, haut, bas et apres) .php

en remplaçant le code ligne 33
Code
$sql = "SELECT s.id, titre, description, url, 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 ";


par
Code
$sql = "SELECT s.id, titre, description, url, 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 1 DAY) AND DATE_SUB(CURRENT_DATE,INTERVAL 0 DAY) ORDER BY date_validation DESC,niveau ASC,titre ASC ";


ce qui affichera les derniers forums inscrits du dernier jour

(rien ne t'empêche de rajouter une LIMIT à la requête)

Eric
Williams
Oui oui j'ai fait un nouveaux2.php que j ai un peu modifier et effectivement les derniers sites inscrits de la journée s'affichent. un petit include du nouveaux2.php sur mon index et l'affaire est dans le sac.


Mais , mon probleme c'est que je ne veux pas les sites inscrits du jour (ils peut y en avoir un max et le dimanche par exemple 0) mais les 5 derniers sites inscrits.

LMM
Rikaix
Bon, sans test et à l'aveugle, si ton annuaire explose , je me dégage de toutes responsabilités, rolleyes.gif bleh.gif

A mon avis en supprimant la partie de la requête (dans nouveaux2.php) :

Code
AND date_validation BETWEEN DATE_SUB(CURRENT_DATE,INTERVAL $nb_days2benew DAY) AND DATE_SUB(CURRENT_DATE,INTERVAL 0 DAY)


ce qui donnerait
Code
$sql = "SELECT s.id, titre, description, url, 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  ORDER BY date_validation DESC,niveau ASC,titre ASC ";

et en ajoutant la LIMIT
Code
$sql = "SELECT s.id, titre, description, url, 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  ORDER BY date_validation DESC,niveau ASC,titre ASC  LIMIT 0,5";


ça devrait fonctionner puisque là on selectionne les sites activés par ordre de date de validation descendante, donc les 5 derniers sites activés
Williams
Ben voila , avec un peu de "triturage"
cela fonctionne
Voici le code

Citation
$sql = "SELECT s.id, titre, description, url, 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  ORDER BY date_validation DESC LIMIT 5";


Voir le resultat


Un peu de mise en page et se sera bon pour moi


LMM dance.gif

Oups j'ai oublié de dire merci
merci rikaix

LMM Bis
Rikaix
blush.gif merci

avec le code que je t'ai donné (au dessus) ça fonctionne trés bien aussi

Voir ici le test du code

content que tu aies ta solution

A +

Eric
Patrick
Voilà qui prouve que j'ai eu raison de demander à Eric d'intégrer le groupe "Spécialiste" thumbsup.gif

Bravo aussi à LMM et merci de te donner la peine d'intégrer un max ton annuaire. Ce genre d'intégration me dit qu'avec Franck et Gilbert (deepindex) on a eu raison de lancer Utilisable busted_blue.gif

Cordialement,
Williams
Oui, c'est meme mieux que ma solution car il me prenait 5 sites de la journée et maintenant les 5 derniers sites
j'ai bataillé avec le LIMIT car je mettais une virgule entre ASCet LIMIT 0,5



LMM (C'est bon pour ce soir, je rentre a ma maison, busted_blue.gif quoi , qu'il y a un ordi a la maison bleh.gif )
Rikaix
blush.gif merci Patrick

Super LMM ( Le Moteur est en Marche) ;)
A+

Eric
Patrick
Citation (LMM @ mercredi 06 juillet 2005 à 20:15)
C'est bon pour ce soir, je rentre a ma maison, busted_blue.gif  quoi , qu'il y a un ordi a la maison  bleh.gif
*


Je me damande si les compagnes de nos chers membres ne vont pas finir par créer une ligue 'contre les créateurs d'annuaires Utilisable' avec tout ça rofl.gif

++
Williams
Citation
rappel du topic Sur certains de mes sites , j'ai crée une page d'accueil ou j'affiche les derniers sites inscrits sur mon annuaire .


Ben encore un petit bug qu'un (super) internaute m'a signalé :

Les sites inscrits s'affichent sur ma page acceuil du site avec :

1 - titre du site
2 - descriptitf
3 - categorie

le probleme c'est que la categorie a le chemin : http://www.a-nnuaire.com/62-voyage.html
dont erreur 404 car le vrai chemin est
http://www.a-nnuaire.com/annuaire/62-voyage.html

Alors la, on rentre dans le moteur. wacko.gif



voila la modif pour que cela fonctionne

ouvrir le fichier moteur_utlisable.php
trouver ligne 44 la fonction "function affiche_site($resultat,$type="index")"

la copier en entier et la coller en dessous

renommer la fonction en affiche_site3

trouver dans la fonction la ligne
=> Catégorie : <a href="-<?php echo $resultat["id_cat"]; ?>-<?php echo $newphras; ?>.html"

remplacer par
=> Catégorie : <a href="annuaire/<?php echo $resultat["id_cat"]; ?>-<?php echo $newphras; ?>.html"

annuaire/ est le repertoire ou est installé votre annuaire .
enregistrer et fermer

ouvrir le fichier
nouveaux2.php
chercher la fonction affiche_site et renomer la en affiche_site3

enregistrer fermer et tester

voila


Citation
suggestion pour patrick : dans une nouvelle version, c'est  d'inclure dans le moteur la fonction affiche_site3  ou avec un autre nom et un fichier nouveaux_page_accueil.php  cela ne devrait pas poser de probleme et bon t'empechera de te coucher un peu trop tot  rofl.gif et pourrait être utile a bon nombre de nouveaux UTILISAteur



LMM
Patrick
Salut,

merci d'avoir proposé ce rectificatif à la communauté busted_blue.gif A n'utiliser bien sur que si vous avez fait la bidouille LMM (très bonne idée au demeurant) pour mettre les nouveaux inscrits sur la page d'accueil ...
Sinon vous allez tout planter blink.gif

++
tahiti
Bonjour,

Grâce au système de recherches j’ai trouvé ces posts intéressants sur l’affichage des 5 derniers sites inscrits (j'ai la V2).

J’ai suivi toutes les modifs à faire et cela fonctionne……mais….

Effectivement les 5 derniers sites s’inscrivent, mais bizarrement, le sixième s’inscrit quelque part en numéro 3 ou 5, ou bien et on ne le voit pas, ect.

busted_blue.gif Je voudrais que sur les 5 derniers sites inscrits, le nouveau prenne la place du premier et que les autres disparaissent vers le bas, mais comment faire ?

Voici le lien pour regarder l'affichage

Je joins les deux fichiers qui me servent pour l’affichage dans le cas où..
Cliquez pour voir le fichier-joint
Cliquez pour voir le fichier-joint

Merci de votre aide.

Serge
Williams
salut


effectivement sur nouveaux2.php a la ligne 22

on a ORDER BY date_validation DESC LIMIT 5" ce qui demande donc d'afficher les 5 derniers sites par date d'inscription hors a priori tu veux la chronologie des inscriptions

je pense qu il te faut remplacer date_validation par s.id (pas testé)

tient moi au courant
tahiti
MERCI,

J'ai apporté la modif, puis j'ai validé un site ; celui-ci n'est pas apparu dans la liste des 5.

Si tu as d'autres suggestions sciences2.gif

Serge
Williams
oui peut etre

j'ai mis ça sur mon fichier


ORDER BY date_validation DESC,niveau ASC,s.id DESC LIMIT 0,5


essaye
Rikaix
salut,
met ici la requete Sql compléte que tu as, que l'on puisse comprendre ce qui ne va pas ....
tahiti
Citation (Williams @ 08-08-2006, 17:59) *
oui peut etre

j'ai mis ça sur mon fichier
ORDER BY date_validation DESC,niveau ASC,s.id DESC LIMIT 0,5
essaye


Merci à tous,

avant de de mettre la requete, j'ai installé la modif de Williams, et apparement cela fonctionne correctement.

Je réitère mes remerciements à Williams et Rikaix. thumbsup.gif

Voila ce qui a été fait:
Citation
<?php
//nouveaux sites ajoutes dans l'annuaire

include("bdd_utilisable.php"); //variables de l'annuaire
include("moteur_utilisable2.php"); //fonctions de l'annuaire
$nom_annuaire = $PMA_infos['titre_site'];
?>

<?
//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, description, url, 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 ORDER BY date_validation DESC,niveau ASC,s.id DESC LIMIT 0,5";
//envoi de la requete
$res = send_sql($sql,"trouver les nouveaux sites (annuaire)");
//fin de la connexion
mysql_close($lk);

?>
<?php
//affichages des resultats

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))
echo "";
//conservation de la date pour la prochaine comparaison
$date_test = $date_convertie;
//on affiche la date
?>
<?php
}
affiche_site2($resultat,"new");
}//fin while
} //fin if
else //pas de resultat
{
?>
<center>
<span class="no_new_site_annuaire">
Aucun site n'a été ajouté ces <?php echo $nb_days2benew; ?> jours.
</span>
</center>
<?php
}
?>
</div>
</div>


Par contre, vers la fin :
Citation
<center>
<span class="no_new_site_annuaire">
Aucun site n'a été ajouté ces <?php echo $nb_days2benew; ?> jours.
</span>
</center>

busted_blue.gif je peux enlever sans souci le code ci-dessus??

busted_blue.gif Autre question.

J'ai cherché sur le forum différentes expressions pour savoir comment installer un flux RSS (pour un novice) sur un annuaire V2, je crois avoir vu un tel post, mais rien ne ressort.

Alors si savez où cela se situe.

MERCI beaucoup.

Serge
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.