Sql afficher les 5 dernieres news et éffacer les anciennes

Fermé
Kifran - 15 mai 2014 à 14:16
 Kifran - 16 mai 2014 à 16:30
Bonjour à tous, j'ai créer un système de news pour mon site ( pour l'instant en local)
et j aimerais conserver uniquement les 5 dernières news et supprimer les anciennes.
pour afficher les 5 dernières j'ai pu le faire sans problèmes mais je n'arrive pas a effacer
les anciennes avec une seule requête.
Pour afficher les 5 dernières j'ai fais comme ça:
$DernieresNews = 5;
$query=$bdd->prepare('SELECT * FROM table_name ORDER BY time DESC LIMIT  :derniers ');
$query->bindValue(':derniers',(int) $DernieresNews,PDO::PARAM_INT);
$query->execute();

J'aimerais donc effacer toutes les autres news et garder uniquement les 5 dernières news.
pour ne plus avoir besoin d'utiliser LIMIT dans ma requête pour afficher les news.
Si quelqu'un pourrais me dire comment réaliser ma requête pour effacer les anciennes news et garder les 5 dernières se serais vraiment sympas.
Merci d'avance.
Cordialement
A voir également:

2 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
16 mai 2014 à 09:19
Bonjour,

Vous avez un id auto-incrémenté comme index des news?

Si oui, il suffit de récupérer le id le plus faible de la liste des 5 derniers, puis de demander l'effacement par DELETE de tous les news ayant un id strictement inférieur à cet id

A+
0
oui j' ai bien un id en AI je vais mettre ça en place parceque provisoirement pour garder les 5 dernières news j' ai créer 5 news et dans ma page de traitement des news j ai mis un delete pour la plus ancienne news juste une donc a chaque création de news il y as la plus ancienne qui es supprimée en même temps.Je sais que c'est pas top mais ça fonctionnais , en tout cas merci d'avoir répondu je vais mettre ça en place de suite . merci beaucoup, je tiendrais au courant si j'ai des soucis pour le faire. merci encore. A+
0