IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comment filtrer les entrées des 12 dernieres heures


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Comment filtrer les entrées des 12 dernieres heures
    Bonjour,

    Je fais une requette pour afficher des positions

    Ceci dit j'aimerais qu'il m'affiche que les derniere des 12 derniere heure?

    J'ai essayé ceci mais sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'SELECT * FROM positions WHERE timestamp >= now() + INTERVAL 1 DAY ORDER BY timestamp DESC';
    	$req = $conn->prepare($sql);
    	$req->execute();
    	$result = $req->fetchAll(PDO::FETCH_ASSOC);
    Merci pour votre aide
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    En fait, je viens de trouver cette solution, amis je ne peux pas la tester car mes événements ne sont pas encore plus ancien que 12heure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT * FROM positions WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 0.5 DAY) ORDER BY timestamp DESC';
    Ceci dit, j'aimerais ne pas afficher les événement qui sont plus ancien que 1 heures.

    Tout cela, car demain, je ferais un formulaire qui me permettra de déterminer les nombres d'heure a afficher
    la derniere heure
    les 2 dernieres heures
    les 3 dernieres heures
    etc..

    J'ai esayé de mettre 0.1 à la place de 0.5, mais ca semble logique que ca ne marchee pas.
    Es-ce que DAY peut etre remplacé par HOUR?

    PS: J'appelle timestamp, mais en fait l'ehure est enregistré dans la DB sous ce format
    2017-01-16 20:13:00
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Es-ce que DAY peut etre remplacé par HOUR?
    Il suffisait d'essayer pour le savoir.
    Tu peux aussi regarder la doc pour avoir toutes les possibilités
    http://dev.mysql.com/doc/refman/5.7/...ction_date-add

    Au passage, 1 heure c'est 1/24 de jour.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Bonjour
    Oui ca macrhe bien avec hour. J'avais pourtant essayer sans succès, mais j'ai du faire une faute de syntaxe.

    J'ai encore un petite question

    J'essaye de faire ceci

    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
     
    	if(isset($_POST['h']))
    	{
    		$hour = $_POST['h'];
    		//$interval = "INTERVAL ".$_POST['h']." HOUR";
    		//$interval2 = DATE_SUB(NOW(), INTERVAL $hour HOUR);;
    	}else{
    		$hour = 72;
    		//$interval = "INTERVAL 72 HOUR";
    		//$interval2 = DATE_SUB(NOW(), INTERVAL 72 HOUR);
    	}
     
    	echo $hour;
     
    	try{
     	   $conn = new PDO('mysql:host='.$cfg_db_host.';charset=utf8;dbname='.$cfg_db_db, $cfg_db_user , $cfg_db_password);
    	}
    	catch (Exception   $e){echo json_encode(array("retour"=>'Erreur de connexion à la bdd', "e" => $e )); die();}
     
    	//$sql = 'SELECT * FROM positions WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 HOUR) ORDER BY timestamp DESC';
    	$sql = 'SELECT * FROM positions WHERE timestamp >= DATE_SUB(NOW(), INTERVAL '.$hour.' HOUR) ORDER BY timestamp DESC';
    	//$sql = 'SELECT * FROM positions WHERE timestamp >= DATE_SUB(NOW(), $interval) ORDER BY timestamp DESC';
    	//$sql = 'SELECT * FROM positions WHERE timestamp >= DATE_SUB(NOW(), '.$interval.') ORDER BY timestamp DESC';
    	//$sql = 'SELECT * FROM positions WHERE timestamp >= $interval2 ORDER BY timestamp DESC';
    Ormis, la première je ne trouve pas la bonne syntaxe pour définir l'heure en fonction du choix de l'utilisateur

    Merci pour votre aide
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    N'oublie pas de sécuriser tes requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hour = intval($_POST['h']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/07/2016, 09h55
  2. Comment limiter les entrées d'un TEdit à des chiffres
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 12/02/2013, 17h34
  3. [OpenOffice][Base de données] comment creer les cardinalite des relations entre les tables
    Par aya2103 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 23/08/2010, 13h36
  4. comment creer les cardinalite des relations entre les tables
    Par aya2103 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 23/08/2010, 12h28
  5. Comment obtenir les Handles des boutons systèmes de Windows ?
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 22/12/2004, 22h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo