Vous êtes ici Forums > Dépôt de sources > Afficher news une par une (déjà commencé !)

SUJET: Afficher news une par une (déjà commencé !)
  Le 24 Mai 2010 à 10:17:40
Bonjour,

J'ai commencé à mettre en place un système de news comme ceci :

Le site est fait sous Drupal (erf... obligé)
Une page gère l'affichage (page.tpl.php)
La page d'accueil affiche la dernière news en incluant news-front.php qui gère ceci
La page de news affiche toutes les news par ordre décroissant en incluant news.php qui est presque identique à news-front.php
Les news sont ajoutées et stockées dans une BDD

Je voudrais que sur la page d'accueil, les news s'affichent une par une au bout d'un temps donné : dernière news >> X secondes >> avant-dernière news >> X secondes etc en boucle.

Voici le code de mon fichier news-front.php qui gère ceci :

Code:
<?php
// on se connecte à notre base  
$base mysql_connect ('***''***''***');  
mysql_select_db('***'$base);  

// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)  
$sql 'SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC LIMIT 1;';  

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)  
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on compte le nombre de news stockées dans la base de données
$nb_news mysql_num_rows($req);

if (
$nb_news == 0) {
   echo 
'Aucune news enregistrée.';
}
else {

   
// si on a au moins une news, on l'affiche
   
while ($data mysql_fetch_array($req)) {

      
// on décompose la date
      
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s"$an$mois$jour$heure$min$sec);

      
// on affiche les résultats 
      
echo '<br />News de : ' htmlentities(trim($data['auteur'])) , '<br />';
      echo 
'Titre : ' htmlentities(trim($data['titre'])) , '<br />';
      echo 
'Postée le : ' $jour '/' $mois '/' $an ' à ' $heure ':' $min ':' $sec 'lt;br />';
      echo 
'News : ' nl2br(htmlentities(trim($data['texte_news']))) , 'lt;br /><br />';
   }
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);

// on ferme la connexion à la base de données
mysql_close ();
?>



Je suppose que c'est dans le "else" qu'il faut toucher quelque chose, mais quoi ? mettre une boucle ? une sorte de timer ?

HELP ! =)
lightben
profil du membre
Message:

Dernière réponse le
26-05-2010 à 10:37:39
par KOogar
 

  Le 26 Mai 2010 à 10:37:39

regarde la fonction sleep() mais attention, beaucoup de serveur la désactive
http://www.phpsources.org/function.sleep.php
KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 
 
Librairie PHP

Connexion

 
 

Explications

 
 

Ressources

 
 
 
 

Flux RSS

 
 
 
 
      TWITTER !!
Suivez phpsources sur Twitter
 
annuaire phpsources référencer vos sites

Répertoire de sites francophones pour ajouter vos sites.
Référencer vos sites

 
Partenaire officiel
Partenaire officiel
 
  Statistiques...
Stats du réseau:
visiteurs en ligne : 38
basées sur les utilisateurs actifs des 5 dernières minutes
membres : 10719
 
Stats du site phpsources:
Dernière mise à jour des stats
aujourd'hui à 11:53:28

codes sources : 568
scripts : 806
articles - actualités : 101
tutoriel : 34
sites sur le langage PHP : 165
commentaires : 1 651
total des scripts téléchargés: 534 781
total hits codes sources: 4 896 492