[RESOLU] requete mysql Dernier jour TIMESTAMP

Eléphanteau du PHP | 13 Messages

08 févr. 2016, 11:03

Bsr
J'ai une table mysql qui contient des champs avec des valeurs TIMESTAMP dans un champ nommé last_post (exemple de valeur (1432977441).

Je voudrais faire une requête sur ces champs pour ne garder que ceux de la journée en cours (derniers 24h).


J'ai essayé cela, mais ça ne passe pas.

Code : Tout sélectionner

$query = 'SELECT * FROM pedalterntopics WHERE (`last_post` > DATE_SUB(now(), INTERVAL 1 DAY)';
Auriez vous une idée ?
Merci :-)

ynx
Mammouth du PHP | 586 Messages

08 févr. 2016, 13:39

Salut,

Ta requête semble pourtant correcte et devrait bien fonctionner. Es-tu sur qu'il existe bien des données correspondantes ?
Tu peux essayer cette requête mais c'est sensé être équivalent :
SELECT * FROM pedalterntopics WHERE last_post > (CURRENT_TIMESTAMP - INTERVAL 1 DAY)
Bonne journée

Eléphanteau du PHP | 13 Messages

08 févr. 2016, 21:58

Merci pour la réponse,
je ne comprends pas ça ne passe pas.
Voici un extrait de ma table

et ma requête :

Code : Tout sélectionner

$query = 'SELECT * FROM pedalterntopics WHERE (`last_post` > DATE_SUB(now(), INTERVAL 100 DAY)';

Code : Tout sélectionner

INSERT INTO `pedalterntopics` (`id`, `poster`, `subject`, `posted`, `first_post_id`, `last_post`, `last_post_id`, `last_poster`, `num_views`, `num_replies`, `closed`, `sticky`, `moved_to`, `forum_id`) VALUES ..... (82, 'Cyrille', '[PRET] Nos titres disponilbles en prêt', 1453098507, 222, 1453135196, 223, 'Cyrille', 85, 1, 0, 1, NULL, 3), (83, 'Pierric', 'Journal scolaire et règlementation.', 1453141850, 227, 1453148409, 229, 'Cyrille', 53, 2, 0, 0, NULL, 3), (84, 'Cyrille', 'Mars 2016 : définir l''ordre du jour', 1453233149, 230, 1454786695, 307, 'Cyrille', 268, 30, 0, 0, NULL, 9), (85, 'Cyrille', 'Cède des BT', 1453656864, 235, 1453926665, 264, 'Pierric', 66, 6, 0, 0, NULL, 3), (86, 'Cyrille', 'Mes plans de travail en CE1/CE2', 1453808500, 239, 1453998913, 271, 'Cyrille', 79, 5, 0, 0, NULL, 6), (87, 'Pierric', 'Pink floyd, le film!', 1453931909, 269, 1453931909, 269, 'Pierric', 33, 0, 0, 0, NULL, 11), (88, 'Pierric', 'Le journal scolaire', 1454020740, 276, 1454020740, 276, 'Pierric', 21, 0, 0, 0, NULL, 12), (89, 'Cyrille', 'Installer un serveur Calculatice en local', 1454261260, 279, 1454261260, 279, 'Cyrille', 16, 0, 0, 1, NULL, 3), (90, 'Cyrille', 'Rajeunir les PC des ENR avec Linux - déploiement par images', 1454263844, 280, 1454270924, 281, 'Pierric', 27, 1, 0, 1, NULL, 3), (91, 'Cyrille', 'Le Hold-up planetaire: la face cachée de Microsoft.', 1454328351, 282, 1454788070, 310, 'Cyrille', 93, 13, 0, 0, NULL, 3), (94, 'Cyrille', 'Exemple d''une matinée dans le cadre d''un projet à long terme', 1454695596, 298, 1454785432, 301, 'Pierric', 32, 2, 0, 0, NULL, 6), (93, 'Cyrille', 'Exemple d''un projet d''un jour', 1454693152, 297, 1454693152, 297, 'Cyrille', 8, 0, 0, 0, NULL, 6);
ça devrait retourner quelque chose non ? Là j'ai toujours aucun enregistrement trouvé.

?

Eléphanteau du PHP | 13 Messages

08 févr. 2016, 21:58

j'ai mis -100 DAY pour être sûr d'avoir des résultats...

Eléphanteau du PHP | 13 Messages

08 févr. 2016, 22:00

le type de champs est un int(10), ça peut peut être aidé ?

Mammouth du PHP | 571 Messages

09 févr. 2016, 00:00

le type de champs est un int(10), ça peut peut être aidé ?
tu ne peux pas comparer le type INT au type Date.Pour comparer ces 2 types, il faut convertir la date stockée en bd en type DATETIME :
$query = 'SELECT * FROM pedalterntopics WHERE FROM_UNIXTIME(last_post ) > DATE_SUB(now(), INTERVAL 1 DAY)';

Eléphanteau du PHP | 13 Messages

09 févr. 2016, 12:37

Impecc. Merci beaucoup, ça fonctionne. ++ ;-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 févr. 2016, 15:38

Impecc. Merci beaucoup, ça fonctionne. ++ ;-)
Bonjour,

Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton "Résolu" situé en haut de la page.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 13 Messages

09 févr. 2016, 15:57

OK j'avais pas vu le bouton, je le cherchais en bas... du coup j'avais mis RESOLU dans le titre, je le fais de suite. Merci ;-)