Page 1 sur 1

Afficher que certaine infos dans la BDD

Posté : 23 août 2005, 18:43
par Manio 54
Bonjour !!
J'explique ce que je veux faire :
J'affiche la derniere news sur la page index.php et je veux creer une partie archives des news mais je ne voudrais pas que la derniere news s'affiche (elle a rien a faire dans les archives si c'est une news )
J'aimerai des idées et j'ai posté dans BDD car je pense que si c'est possible autant le faire a la source !

Merci bcp

Posté : 23 août 2005, 18:59
par Cyrano
Les idées ? Un table archive et une requête avec un tri sur les dates de parution pour faite un INSERT INTO archive FROM (SELECT ...)
Avec un petit webcron pour automatiser le truc tous les mois ou toutes les semaines par exemple en faisant exécuter un fichier PHP contenant la requête en question..

Posté : 23 août 2005, 19:10
par felixphp
mysql_query("SELECT * FROM news ORDER BY ID DESC LIMIT 1,100");

Posté : 23 août 2005, 19:11
par Cyrano
Tu oublies le facteur "date" felixphp, si la dernière news publiée du matin même est à l'intérieur de la limite 0, 100, elle sera archivée et qui ne doit précisément pas être fait.

Posté : 23 août 2005, 19:14
par Xenon_54
Bonjour,
Tu oublies le facteur "date" felixphp, si la dernière news publiée du matin même est à l'intérieur de la limite 0, 100, elle sera archivée et qui ne doit précisément pas être fait.
As-tu testé la requête proposé? Cela fonctionne parfaitement en considérant le fait qu'une news est normalement posté dans le même autre que les ID se génèrent. De plus, je n'ai pas vu de LIMIT 0,100 mais bien LIMIT 1,100

Le seul problème que je verrais avec cette requête est le suivant:
S'il veut récupérer tous les enregistrements sauf le dernier, il faudra bidouiller avec la clause LIMIT ou trouver autre chose.

Posté : 23 août 2005, 19:16
par felixphp
en rejoutant un champs timestamp à la table et en rajoutant WHERE timestamp<='".$date."'

$date vallant "time() - 24*60*60"

Posté : 23 août 2005, 19:33
par Xenon_54
Bonjour,

Là par exemple, ça ne fonctionne plus. Cela suppose que le mec crée une news à chaque jour. Or il veut afficher la dernière news sur la page d'accueil et les archives sans celle-ci et ce, jusqu'à ce qu'il remplace celle sur la page d'accueil.

Le plus efficace serait de faire une requête récupérer l'ID de la dernière news et une autre qui sélectionne toutes les autres sans cette dernière.

Posté : 23 août 2005, 19:37
par felixphp
j'ai répondu seulement à la demande de Cyrano

Posté : 23 août 2005, 19:45
par Manio 54
je ne vois pas trop ce que je peux faire suite a vos débat mais continuez !!
ouais le probleme c'est que si je recupere tout il y aura obligatoirement la derniere news que je ne veux pas

Posté : 23 août 2005, 19:48
par felixphp
si tu fait LIMIT 1 , 100 tu ne recupère que de a 2eme à la 101eme (a l'envers) donc tu ne récupére pas la première (en fait la dernière car on compte à l'envers grace à ORDER BY ID DESC)

Posté : 23 août 2005, 19:50
par Manio 54
j'essaye sa je vous redis

Posté : 23 août 2005, 19:53
par Manio 54
j'ai testé dans phpmyadmin nikel sa marche merci beaucoup !!!

Posté : 23 août 2005, 19:58
par felixphp
un conseil : ma requete est pas parfaite, si tu l'utilise, met LIMIT 1,10000000 parce que on fait facilement 100 news mais pas 1000000000 !!!!!! :lol:

Posté : 23 août 2005, 20:09
par Manio 54
oui je pense mais c'était juste le debut qu'il me fallait maintenant je vais tourner autour de sa !!
encore merci