Bonjour à tous,
Je suis un gros newbie et il y a un problème sur lequel je bute depuis presque 3 jours.
J'ai un module sur un site prestashop qui me permet d'extraire des données d'ajourd'hui, de la veille ou de la semaine dernière et qui fonctionne très bien, mais ce dont j'aurais besoin, c'est d'extraire des données d'il y a quelques heures, par exemple 14h.
Voici les lignes :
J'ai donc essayé de modifier la 2e ligne qui m'extrait les commandes de la veille. Le problème est que le script fonctionne uniquement pour les unités de temps correspondant à DAY, MONTH, YEAR, mais pas pour HOUR. Dès que je remplace par HOUR, le script ne fonctionne plus. Je pense qu'il y a un problème de format de DATE, mais comme je suis un débutant, je ne sais pas où chercher ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 //conditon permettant de rajouter les conditions lié au temps $temp_query=''; if ($temps==1){ $temp_query=' and '._DB_PREFIX_.'orders.date_add like concat(DATE(NOW()),\'%\')'; } if ($temps==2){ $temp_query=' and '._DB_PREFIX_.'orders.date_add like concat(SUBDATE(DATE(NOW()),1),\'%\')'; } if ($temps==3){ $temp_query=' and week('._DB_PREFIX_.'orders.date_add) =week(DATE(NOW())) and year('._DB_PREFIX_.'orders.date_add) =year(DATE(NOW()))'; } if ($temps==4){ $temp_query=' and week('._DB_PREFIX_.'orders.date_add) =week(DATE(NOW()))-1 and year('._DB_PREFIX_.'orders.date_add) =year(DATE(NOW()))'; } if ($temps==5){ $temp_query=' and Month('._DB_PREFIX_.'orders.date_add) =month(DATE(NOW())) and year('._DB_PREFIX_.'orders.date_add) =year(DATE(NOW()))'; } if ($temps==6){ $temp_query=' and Month('._DB_PREFIX_.'orders.date_add) =if(month(DATE(NOW()))<>1,month(DATE(NOW()))-1,12) and year('._DB_PREFIX_.'orders.date_add) =if(month(DATE(NOW()))<>1, year(DATE(NOW())), year(DATE(NOW()))-1)'; } if ($temps==7){ $temp_query=' and year('._DB_PREFIX_.'orders.date_add) =year(DATE(NOW()))'; } if ($temps==8){ $temp_query=' and year('._DB_PREFIX_.'orders.date_add) =year(DATE(NOW()))-1'; } if ($temps==20){ //recuperation des champs date $temp_query=' and '._DB_PREFIX_.'orders.date_add between \''.$date_start.'\' and \''.$date_stop.'\''; } //variable fichier csv //$separateur=';'; $filename=date("YmdHms").'.csv';
Après une centaine de tentatives, voici toute sorte de lignes équivalentes qui fonctionnent sur les unités de temps DAY, MONTH, YEAR, mais ne fonctionnent pas avec HOUR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ($temps==2){ $temp_query = ' and DATE('._DB_PREFIX_.'orders.date_add) = CURRENT_DATE - INTERVAL 5 DAY';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ($temps==2){ $temp_query=' and '._DB_PREFIX_.'orders.date_add like concat(DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY),\'%\')';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ($temps==2){ $temp_query=' and '._DB_PREFIX_.'orders.date_add like concat(SUBDATE(DATE(NOW()),1),\'%\')';
Je m'arrache les cheveux à essayer bêtement toutes les combinaisons possibles, mais je suis à bout.
Est-ce qu'il y aurait une âme charitable parmi vous ?
Merci à vous tous,
Cyril
Partager