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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?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&eacute;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&eacute;e le : ' , $jour , '/' , $mois , '/' , $an , ' &agrave; ' , $heure , ':' , $min , ':' , $sec , '<br /><br />';
      echo 'News : ' , nl2br(htmlentities(trim($data['texte_news']))) , '<br /><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 ! =)