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 :

Faire un COUNT avec un interval 1 MIN


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut Faire un COUNT avec un interval 1 MIN
    Bonjour,

    Je recherche à compter le nombre de lignes qui sont enregistrées dans ma table sms_tx dans un interval d'une minute avec la requête ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW() AND NOW() - INTERVAL 1 MINUTE)
    Le champ time_tx est en datetime 0000-00-00 00:00:00.

    Par exemple il est 2012/07/29 20:25:00, je veux compter le nombre lignes entre ce datetime et 2012/07/29 20:24:00

    Merci d'avance pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    Pour ceux que ça intéresserait j'ai trouvé la réponse,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 1 MINUTE) AND NOW()
    Par contre en php, je ne sais pas comment réaliser mon test pour effectuer un return true ou false

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function control_max_sms_tx()
    {
    include ("connect.inc.php");
    $res = mysql_query("SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 5 MINUTE) AND NOW()",$link); 
    }
    J'aimerai que si le résultat est supérieur à 40 me retourne true , sinon false.

    Merci d'avance .

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 44
    Points
    44
    Par défaut
    Il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT 1
    FROM sms_tx 
    WHERE time_tx BETWEEN (NOW()-INTERVAL 1 MINUTE) 
      AND NOW()
     AND COUNT(*) > 40
    Il retournera 1 (true) si c'est vrai

    Ça devrait fonctionner...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    Merci je recherchais quelque chose dans le genre ,
    par contre j'ai ce message d'erreur suite à un test
    #1111 - Utilisation invalide de la clause GROUP

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 44
    Points
    44
    Par défaut
    Oui, l'ordre dans la clause WHERE n'est peut être pas très heureux. Excuse moi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 1
    FROM sms_tx 
    WHERE COUNT(*) > 40 
         AND time_tx  BETWEEN (NOW()-INTERVAL 1 MINUTE) AND NOW()

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    Merci ! Par contre j'ai toujours l'erreur dans mysql, j'ai essayé de le mettre dans une fonction pour tester en php mais je ne sais pas comment le traiter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function control_max_sms_tx()
    {
    include ("connect.inc.php");
    $res = mysql_query("SELECT 1 FROM sms_tx WHERE COUNT(*) > 40 AND time_tx  BETWEEN (NOW()-INTERVAL 1 MINUTE) AND NOW()",$link);
    }
     
    control_max_sms_tx();
    Merci d'avance

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    ... de retour, je me suis documenté, à priori il faut mettre HAVING

    J'ai testé en le mettant un peu partout, ça ne fonctionne pas

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    J'ai trouvé avant de dormir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 50000 MINUTE) AND NOW() HAVING COUNT(*) > 40
    Ca me retourne bien 0 car je n'ai que 2 enregistrements et 2 quand je fais > 1 (pour tester),
    maintenant quel code dois je faire en php, pour me retourner true ou false ?

    merci

Discussions similaires

  1. Comment faire un random avec un min et un max
    Par crocodingo dans le forum C++
    Réponses: 3
    Dernier message: 06/04/2006, 11h19
  2. Problème unit CRT pour Faire du Pascal avec Delphi
    Par alexmorel dans le forum Débuter
    Réponses: 4
    Dernier message: 01/06/2004, 17h13
  3. [INDY] comment faire un 'POST' avec idHTTP??
    Par gamez dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/05/2004, 19h02
  4. Faire une JFrame avec LookAndFeel
    Par aburner dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/12/2003, 08h54
  5. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08

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