Fonction week

Eléphanteau du PHP | 13 Messages

14 oct. 2009, 23:04

Bonsoir à tous,
Je présente la situation : J'ai un site Internet déjà en ligne ici. Je souhaite améliorer l'interface de celui-ci et les fonctionnalités, ce que je susi en train de faire en local. En gros, j'ai une table 'films'. Dedans, j'ai des champs de type date (date_cinema, date_dvd) parmi d'autre champ de type Varchar (acteurs, réalisateur...).
Je souhaite développer une partie sur les sorties cinéma de la semaine, à venir (la semaine suivante) et futures (les deux autres semaines suivantes ou plus...). Pareil pour la section DVD.
Pour la semaine en cours, j'ai trouvé 'week' pour ma requete :
$sql = "SELECT titre, date_sortie_cinema, ... FROM `****` WHERE WEEK(date_cinema) = WEEK(curdate()) && ...
.
Cela fonctionne bien.
Par contre, je bloque un peu pour trouver la requête pour sélectionner seulement les films où le champ 'date_cinema' (de type date) correspond à la semaine suivante, puis aux deux autres semaines qui suivent la semaine suivante.
Pour résumé, sur 1 mois j'ai 4 semaines (1-2-3-4). J'ai la requête pour la semaine 1, il me manque la requête pour la semaine 2 et une requête indépendante pour les semaines 3 et 4 voire plus...

Merci d'avance pour votre aide.
Modifié en dernier par blasil64 le 15 oct. 2009, 16:28, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2009, 14:35

Tu as ta date courante => week() => numéro de semaine

La semaine suivante = date_courante + 7 jours (ou 1 semaine) => week() => numéro de semaine

Pour ajouter proprement des jours des mois ou des années à une date il y a date_add()

Avec ça tu dois avoir tout ce qu'il faut

Eléphanteau du PHP | 13 Messages

15 oct. 2009, 16:26

Si c'est pas beau ça. Merci de ton aide, cela m'a éclairci sur les moyens de le faire.
Voici le code à utiliser pour les curieux d'entre vous :
SELECT ****, **** FROM **** WHEREWEEK(date_dvd) = WEEK(DATE_ADD(CURDATE(),INTERVAL 2 WEEK))
Cette requête sert donc à afficher les films qui sortent dans 2 semaines où 'date_dvd' est un champ de la table du type 'date'.

Merci beaucoup pour ton aide