Aller au contenu

Sujets conseillés

Posté

salut,

Je rentre des données dans ma base avec une date.

Celle ci contient un champs date.

Cette date a la forme annee-mois-jour dans la base.

Je voudrais afficher juste les entrées de ma base pour les deux derniers mois.

Est ce que je suis obligé de recuperer la date de toutes mes entrées de les exploder pour isoler le mois et le comparer au mois en cours ??

Ou existe t'il une maniere plus simple de faire ?

Posté

Salut,

C'est tout simple !

Select * from `latable` where date > '2005-02-00'

te donnera les entrées pour février et mars 2005.

Essaie d'optimiser la requête pour éviter le "Select *" en mettant plutôt "Select champ1, champ2, champ3..."

Posté

Encore une question...

pour determiner la date d'affichage je fais

$moisactuel=date("m");

$mois2=$moisactuel-1;

et je me sers de ce mois pour la requete, en ajoutant un if particulier pour le mois de janvier.

Cependant mois 2 perd son 0 pour tous les mois<10.

Ce qui me donnerais une requete du type:

Select * from `latable` where date > '2005-2-00'

L'absence de 0 peut elle poser probleme.

(Je prefere demander, je n'ais pas beaucoup de moyen de le tester a part une patience de quelques mois)

Posté

ok...

En fait j'ais fais

$mois=date("m");

$année=date("Y");

$mois2=$mois-1;

if ($mois<11)

{

$dateFinale=$année."-0".$mois2."-00";

}

J'ais aussi ajouté un if pour le mois de janvier afin de decrementer l'année d'un...

  • 1 month later...
Posté

Remonte petit thread.

J'enregistre des dates dans un champ MySQL de type datetime incrémenté par date('Y-m-d H:i:s') et je voudrais afficher seulement les résultats pour ce mois. J'ai beau tâter et expérimenter je n'affiche qu'un message d'erreur me réclamant de prendre des cours afin d'écrire des requêtes correctes :lol:

Si quelqu'un pouvais me guider un peu, ce serait fort généreux.

Posté (modifié)

Bonjour,

Je ne suis pas sur d'avoir compris :s c'est peut être ça:

SELECT * FROM `ta_table` WHERE MONTH(NOW()) = MONTH(`champ`)

Modifié par Boo2M0rs0
Posté (modifié)

Ça à l'air de fonctionner comme ça mais je ne peux pas tester plus à fond car je n'est même pas un mois de cumuler dans ma base.

Merci, Boo2M0rs0. Mais pourrais tu m'expliquer d'où tu sort month car après recherche je n'ai rien trouver en rapport avec PHP/MySQL, une doc ou autre ?

Modifié par lupucide
Posté

Month() est une fonction mysql qui extrait le numéro du mois d'une date.

Donc dans ce cas , on regarde si le numéro de mois actuel ( month(now()) ) est égal au numéro de mois du champ ( month(`champ`) )

http://www.nexen.net/docs/mysql/annotee/da...e-functions.php

Par contre je me pose une question sur l'optimisation, est ce que mysql recalcule month(now()) pour chaque entrée à tester ? Si c'est le cas, il vaudrai mieux passer par la fonction date() de php:

$mois = date('m');
mysql_query("SELECT * FROM `ta_table` WHERE '$mois' = MONTH(`champ`)")

Posté

Rooh, je n'avais pas penser à potasser la doc de MySQL :whistling:

Vu tes doutes je vais passer le WHERE avec la fonction date(). Merci de ton aide.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...