MYSQL PHP et Date

Résolu/Fermé
elti69 Messages postés 5 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 4 novembre 2011 - Modifié par elti69 le 3/11/2011 à 16:59
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 - 4 nov. 2011 à 15:18
Bonjour,
j'aimerais afficher les champs de ma table cafeteriaMenus si la date n'est pas encore passée.

SELECT * FROM cafeteriaMenus WHERE dateMenu>2011-11-02 ORDER BY dateMenu ASC LIMIT 0,5

mais cela ne m'affiche les 5 premiers menus qui sont passés depuis longtemps...


CREATE TABLE 'cafeteriaMenus' (
'id' int(10) unsigned NOT NULL auto_increment,
'pdf' varchar(255) NOT NULL default '',
'dateMenu' date NOT NULL default '0000-00-00',
PRIMARY KEY ('id')
) TYPE=MyISAM AUTO_INCREMENT=9 ;

--
-- Contenu de la table 'cafeteriaMenus'
--

INSERT INTO 'cafeteriaMenus' VALUES (1, 'test.pdf', '2011-10-24');
INSERT INTO 'cafeteriaMenus' VALUES (2, 'test2', '2011-10-31');
INSERT INTO 'cafeteriaMenus' VALUES (3, 'test3', '2011-11-07');
INSERT INTO 'cafeteriaMenus' VALUES (4, 'test4', '2011-11-14');
INSERT INTO 'cafeteriaMenus' VALUES (5, 'test5', '2011-11-21');
INSERT INTO 'cafeteriaMenus' VALUES (6, 'test6', '2011-11-28');
INSERT INTO 'cafeteriaMenus' VALUES (7, 'test7', '2011-12-05');
INSERT INTO 'cafeteriaMenus' VALUES (8, 'test8', '2011-12-12');

Merci pour votre aide...
je pense que ca vient du format de la date mais je vois pas comment faire d'autre!


A voir également:

6 réponses

coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
3 nov. 2011 à 17:48
Salut !

Si tu essayais :
SELECT * FROM cafeteriaMenus WHERE dateMenu > NOW();


Juste pour voir...
0
epitale Messages postés 3942 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 27 octobre 2017 915
3 nov. 2011 à 18:47
bonsoir elti69,
pour faire des comparaisons et calculs avec les dates c'est plus simple de resté en timestamp... tu repasses en format jj/mm/aaaa au dernier moment pour affichage coté client
0
elti69 Messages postés 5 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 4 novembre 2011
4 nov. 2011 à 14:16
Coeus, ta methhode marche mais elle ne fait pas ce que je veux.

Je voudrais faire

SELECT * FROM cafeteriaMenus WHERE dateMenu > NOW() -7 jours;

et je n'y arrive pas.

Epitale
je n'arrive pas a soustraire des jours d'un timestamp...
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
4 nov. 2011 à 14:36
Bonjour,

Le premier exemple donné dans la doc de mysql devrait répondre à ton problème.
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

Voici un exemple d'utilisation des fonctions de date. La requête suivante sélectionne toutes les lignes dont la colonne date_col représente une date de moins de 30 jours :
mysql> SELECT quelquechose FROM nom_de_table
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;

Notez que cette requête va aussi sélectionner des lignes dont les dates sont dans le futur.


Xavier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
4 nov. 2011 à 14:54
Ouais, je pense qu'avec ce que tu veux faire, le mieux serait effectivement d'utiliser un timestamp.

C'est un peu confus au début, mais ça s'apprend vite. Regarde ici. Change tes champs de date dans ta BDD pour des Integers assez longs pour contenir un timestamp, et sers-toi de PHP pour faire les calculs nécessaires...

Un timestamp, c'est un nombre de secondes. Donc pour obtenir un jour, tu dois trouver le nombre de secondes dans 24 heures, soit :

60 * 60 * 24 = 86400

Et tu soustrais ça au timestamp, le nombre de fois que tu veux.
0
elti69 Messages postés 5 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 4 novembre 2011
4 nov. 2011 à 15:11
Merci beaucoup,
les 2 méthodes fonctionnent MERCI mille fois!!!
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
Modifié par coeus le 4/11/2011 à 15:18
Super !
N'oublie pas de mettre ton sujet en résolu, s'il l'est ! ;-)
Bonne journée !
0