[Travail de Style] Planning en PHP et Mysql

Planning en PHP et Mysql [Travail de Style] - PHP - Programmation

Marsh Posté le 29-07-2003 à 14:48:11    

je voudrais faire un planning, avec mysql, qui gère les bannière de pub à la semaine sur mon site internet.
 
j'aime bien programmer plein de choses, mais je butte déjà sur un ch'tit problème..
 
voici ma prog et mes tables :  
 
alors voilà, la table qui va enregitrer les informations sur les bannière :  

Code :
  1. CREATE TABLE pub_banniere (
  2.   id int(3) unsigned NOT NULL auto_increment,
  3.   ref varchar(10) NOT NULL default '',
  4.   page varchar(5) NOT NULL default '',
  5.   week_s int(2) unsigned NOT NULL default '0',
  6.   year_s year(4) NOT NULL default '0000',
  7.   week_e int(2) unsigned NOT NULL default '0',
  8.   year_e year(4) NOT NULL default '0000',
  9.   entreprise varchar(255) NOT NULL default '',
  10.   banniere varchar(50) NOT NULL default '',
  11.   url varchar(255) NOT NULL default '',
  12.   PRIMARY KEY  (id),
  13.   UNIQUE KEY ref (ref)
  14. ) TYPE=MyISAM;


 
mon problème est à l'insertion dans cette base, puisqu'il faut que les bannières ne puissent pas être sur la même page, la même semaine, de la même année...
 
donc, avant même de faire mon INSERT, je fait un SELECT et si @mysql_num_rows(SELECT)>0, alors, il me retourne une erreur, puisque qu'il existe déjà un client à cette semaine.
 
je vous met la requête que j'utilise :  

Code :
  1. select id from pub_banniere
  2. where page='BP001' and
  3. (week_s>='".$week_s."' and year_s>='".$year_s."') and
  4. (week_e<='".$week_e."' and year_e>='".$year_e."');


Où $week_s correspond à la semaine de départ, $week_e, la semaine de fin, $year_s, l'année de départ et $year_e, l'année de fin.
 
j'aimerais donc savoir ce que vous en pensez et si vous trouveriez un moyen pour faire de cette requête

  • Soit quelquechose de plus court
  • Soit quelquechose "d'infaillible".


Merci de votre particpation.

Reply

Marsh Posté le 29-07-2003 à 14:48:11   

Reply

Marsh Posté le 29-07-2003 à 17:53:22    

petit up du soir... bonsoir... [:xtc]

Reply

Marsh Posté le 29-07-2003 à 18:07:49    

j'ai pas tout compris là....
 
tu planifies l'affichage de banière à raison d'une bannière par semaine par page et par client c'est bien ça ?
 
et tu cherches un moyen simple d'empecher l'affichage (donc l'insertion) d'une bannière à une place occupée ?
 
je sais pas ce qu'en diront les gourous de MySQL mais à la rigeur un index de type UNIQUE sur les colonnes annee et semaine
 
si tu insere pas => soit erreur sur la query soit semaine et annee déjà occupées


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 29-07-2003 à 18:51:10    

le tout, c'est que je ne peux pas mettre mes semaines et années uniques, puisque ma table gère plusieurs pages...
 
donc si une bannière apparait sur une page en semaine x et année y, une autre peut très bien apparaître pour la même semaine et la même année sur une autre page...

Reply

Marsh Posté le 29-07-2003 à 19:24:44    

mais en y repensant, ce que je peux faire c'est, quand une bannière est ajoutée sur 3 semaines, faire 3 entrées dans la base du style :  
 
semaine x, annee y
semaine x+1, annee y
semaine x+2, annee y
 
et faire des if à gogo quand j'en ajoute une nouvelle...

Reply

Marsh Posté le 29-07-2003 à 19:38:49    

ou sinon un index unique sur annee,semaine et bannière (tu peux monter jusqu'à 15 colonnes sur un index mais bon..)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Sujets relatifs:

Leave a Replay

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