[php/sql] mettre en archives données quand date dépassé

mettre en archives données quand date dépassé [php/sql] - SQL/NoSQL - Programmation

Marsh Posté le 26-06-2006 à 10:28:18    

Salut,
je programme en site en php / sql pour un groupe de musique et j'ai deux catégories avec les dates de concerts.
CONCERTS ACTUELS et CONCERTS ARCHIVES.
Je voudrais mettre dans les archives les concerts actuels qui sont dépassées (contrôl de date).
 
Mes tables concert_actul et concert_archives sont identiques et ceux constituent comme cela :
 
CREATE TABLE concert_actuel (
  concert_num int(11) NOT NULL auto_increment,
  concert_date date default NULL,
  concert_heure varchar(10) default NULL,
  concert_prix varchar(40) default NULL,
  concert_ville varchar(50) default NULL,
  concert_departement varchar(20) default NULL,
  concert_lieu varchar(50) default NULL,
  concert_groupe1 varchar(30) default NULL,
  concert_site1 varchar(60) default NULL,
  concert_groupe2 varchar(30) default NULL,
  concert_site2 varchar(60) default NULL,
  concert_groupe3 varchar(30) default NULL,
  concert_site3 varchar(60) default NULL,
  concert_guest char(3) default NULL,
  concert_flyer varchar(100) default NULL,
  PRIMARY KEY  (concert_num)
  );
 
 
Je n'ai aucun probleme pour l'affiche ou ajouter une nouvelle date mais je ne vois pas comment faire pour dire 'si le concert est passé alors tu me le mets dans les archives'.  En fait je sais comment faire mais je ne vois pas où mettre les requetes pour. A chaque fois qu'une personne va aller sur ma page CONCERTS ACTUELS une requete de verification va s'effectuer pour voir si le concert est passée non ?  
Merci d'avance

Reply

Marsh Posté le 26-06-2006 à 10:28:18   

Reply

Marsh Posté le 26-06-2006 à 10:54:56    

pour etre sur que ca soit clair
tu veux archiver pour que les anciens concert n'apparaissent pas ou alors parceque tu veux vider la base qui est trop grosse ?
parceque si le but est de ne pas afficher les concert passé, ca se fait lors de ta requete sql, t'es pas obliger de sortir les concert passés.
désolé si ma remarque est con...
 
Sinon, pour l'archivarge, si tu as un acces complet au serveur, le mieux est de faire un script qui archive les concerts passé et le mettre dans le cron, qui sera lancé disont 1fois par jour

Reply

Marsh Posté le 26-06-2006 à 11:06:59    

non non en fait j'ai une page avec les concerts actuels et les concerts archivés. Par exemple j'ai un concert le 26/06/06 qui se trouve donc dans la page des concerts actuels....je voudrais que par exemple à 3h du mat du jour 27/06/06 ce concert soit mis dans ma page concerts archivés
 
et oui oui j'ai accés complet au serveur mais je n'ai jamais fait ce genre de script :s
merci

Reply

Marsh Posté le 26-06-2006 à 11:14:52    

je me repete mais je suis pas sur que deplacer les enregistrements au fur et a mesure soit la bonne solution.
Pourquoi ne pas avoir qu'une table "concert" et si tu veux afficher les suivant tu fais
  "select * from concert where date >= maintenant"  
et si tu veux les passés tu fait
  "select * from concert where date < maintenant" ?
 
A moins que tu ai 5000 concerts par jour, je vois pas trop l'interet de '"l'archivage" ?  

Reply

Marsh Posté le 26-06-2006 à 11:16:33    

nico168 a écrit :

je me repete mais je suis pas sur que deplacer les enregistrements au fur et a mesure soit la bonne solution.
Pourquoi ne pas avoir qu'une table "concert" et si tu veux afficher les suivant tu fais
  "select * from concert where date >= maintenant"  
et si tu veux les passés tu fait
  "select * from concert where date < maintenant" ?
 
A moins que tu ai 5000 concerts par jour, je vois pas trop l'interet de '"l'archivage" ?


si tu veux afficher les suivant tu fais
  'select * from concert where date >= NOW()'  
et si tu veux les passés tu fait
  'select * from concert where date < NOW()'
[:aloy]


Message édité par Master p le 26-06-2006 à 11:17:49
Reply

Marsh Posté le 26-06-2006 à 11:23:40    

lol oui c'est vrai que c'est mieux et largement moins compliquer comme ça ^^ je vais tenter !
merci

Reply

Sujets relatifs:

Leave a Replay

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