jc66 | Bonjour. J'ai actuellement un système de news.
J'affiche mes news de la plus récente à la plus ancienne en fonction de la date.
Je souhaiterais savoir comment faire pour inserer une bannière (ou autre) toujours entre la dernière news postée et l'avant dernière. Uniquement entre ces deux !
Voici mon code
Code :
- <?php
- // on se connecte à notre base
- $base = mysql_connect ('');
- mysql_select_db('', $base);
- $nombreDeMessagesParPage = 20; // Le nombre de news sur chaque page
- // On récupère le nombre total de messages
- $retour = mysql_query('SELECT COUNT(*) AS nb_news FROM news');
- $donnees = mysql_fetch_array($retour);
- $totalDesMessages = $donnees['nb_news'];
- // On calcule le nombre de pages à créer
- $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
- if (isset($_GET['num_page']))
- {
- $page = $_GET['num_page']; // On récupère le numéro de la page indiqué dans l'adresse (news.php?num_page=4)
- }
- else // La variable n'existe pas, c'est la première fois qu'on charge la page
- {
- $page = 1; // On se met sur la page 1 (par défaut)
- }
- // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
- $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
- // 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 id, titre, date, auteur FROM news
- ORDER BY date1 desc LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;
- // 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['date1'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
- // on affiche les résultats
- echo '<p id="'.$data['id'].'">'; ?>
- <h2><? echo ' <a href="index-'.$data['id'].'.php">' .stripslashes(htmlentities(trim($data['titre']))). '</a>'; ?></h2><br />
- <h6><? echo '' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , '' ; ?> </h6><br />
- <?
- }
- }
- // on libère l'espace mémoire alloué à cette requête
- mysql_free_result ($req);
- ?>
|
Message édité par jc66 le 01-12-2007 à 18:05:23
|