Récupérer les dernières lignes d'une table (et non les premières)

Récupérer les dernières lignes d'une table (et non les premières) - SQL/NoSQL - Programmation

Marsh Posté le 29-01-2007 à 23:17:38    

Salut à tous !
Voilà j'ai fait un code pour une publication de news sur mon site (insérées dans ma table sql par un autre script), et je voudrais récupérer les 3 dernières (car ajoutées en dernier), et ainsi qu'en premier s'affiche la plus récente, en 2e celle publiée juste avant, etc.
Voici mon script (je débute en php)

Code :
  1. <?
  2. //fichier créant la connexion à MySQL
  3. include('connection/connect.php');
  4. $query1 = 'SELECT lien, titre, contenu, date FROM nouvelles_';
  5. $result1 = mysql_query($query1);
  6. // on affiche les 3 dernieres news
  7. for ($i = 0; $i < 3 ; $i++) {
  8.    @$row = mysql_fetch_array($result1);
  9.    $titre   = $row["titre"];
  10.    $lien   = $row["lien"];
  11.    $description          = $row["contenu"];
  12.    $pubDate   = $row["date"];
  13. echo <<<END
  14.  <p><a href="$lien">$titre</a>
  15.   :
  16.  $description ($pubdate)
  17.  </p>
  18. END;
  19. }
  20. mysql_close();
  21. ?>


 
Le problème c'est que là je récupère les 3 dernières en date. Serait-il possible de récupérer les plus récemment ajoutées ? Merci pour votre aide.

Reply

Marsh Posté le 29-01-2007 à 23:17:38   

Reply

Marsh Posté le 29-01-2007 à 23:39:21    

Dans une table, il n'y a pas de notion d'ordre d'insertion.
Si tu veux capturer cette information, il faut la stoquer comme un champ de la table (date_insertion par exemple).
 
Et alors tout devient plus simple :)
 
SELECT lien, titre, contenu, date
FROM nouvelles_
ORDER BY date_insertion DESC
LIMIT 3;

Reply

Marsh Posté le 29-01-2007 à 23:58:08    

+1 pour le LIMIT. Parce que prendre tout les enregistrement pour n'en utiliser que trois c'est moyen...
 
Sinon le champ date qu'il a déjà doit suffir. Faut voir à quoi il correspond mais ya de forte chance pour que ce soit la date d'insertion.

Reply

Marsh Posté le 30-01-2007 à 00:11:50    

dwogsi a écrit :

+1 pour le LIMIT. Parce que prendre tout les enregistrement pour n'en utiliser que trois c'est moyen...
 
Sinon le champ date qu'il a déjà doit suffir. Faut voir à quoi il correspond mais ya de forte chance pour que ce soit la date d'insertion.


 
Merci à tous !
La date actuelle est sous le format Sat, 27 Jan 2007 19:04:49 (car la base sert aussi pour mon flux RSS). Il faut que je garde ce format où que je rajoute un champ dans ma base ?

Reply

Marsh Posté le 30-01-2007 à 00:39:01    

Je dirais plutôt un format genre datetime, adapté pour le ORDER et facilement formatable pour la sortie vers ton flux (cf DATE_FORMAT par exemple).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed