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 :

Return suite à une requête MYSQL [MySQL]


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 Return suite à une requête MYSQL
    Bonjour,

    Je souhaiterai suite à la requête MYSQL ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 5 MINUTE) AND NOW() HAVING COUNT(*) > 40
    Un return FALSE ou TRUE. TRUE s'il y a plus de 40 lignes dans un espace de 5 min, et FALSE pour un nombre inférieur à 40 réponses.

    Pour le moment je n'arrive à obtenir que 0 si je possède pas 40 lignes et xx le nombre de lignes si > à 40.

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Tu ne peux pas simplement tester les résultats et affecter le boolean adéquat par rapport a sa?
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  3. #3
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    true si > 40 false si < ou = 40
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IF(COUNT(*)>40,true,false) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 5 MINUTE)
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Au-temps pour moi
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  5. #5
    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 pour votre aide, par contre j'ai modifié le script pour qu'il passe dans mysql, puis essayé sur apache mais ça il ne me renvoit pas true ou false

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    include ("connect.inc.php");
    $sql = "SELECT IF(COUNT(*)>10,true,false) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 5 MINUTE) AND NOW() ";
    $res = mysql_query($sql,$link); 
    if ($res) {echo "ok";}

  6. #6
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    le resultat $res est un resultat de requête (un ensemble de ligne colonne , même si il n'y a qu'une ligne et une colonne)

    tu doit le parcourir pour avoir les valeurs

    par exemple
    ....
    $res = mysql_query($sql,$link);
    $row = mysql_fetch_row($res);
    if($row[0]) /* premiere colonne = colonne n°0 */
    {
    echo "ok";
    }

    voir doc : http://ie2.php.net/manual/en/function.mysql-query.php
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  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
    Oui Patrick merci bien, je connais un peu le principe, mais dans ce cas présent je cherchais à aller au plus simple , et n'avoir qu'un retour true ou false de la part de mysql.

  8. #8
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(mysql_fetch_row(mysql_query($sql,$link))[0]){echo "ok";}
    sans garantie !
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  9. #9
    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, mais quand je fais cette requete sur phpmyadmin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 500000000 MINUTE) AND NOW() HAVING COUNT(*) > 1
    J'ai bien 2 qui s'affiche :
    COUNT(*)
    2

    Je n'arrive pas à récupérer cette valeur 2 en php, malgré tous mes tests :-(



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $res = mysql_query("SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 500000000 MINUTE) AND NOW() HAVING COUNT(*) > 21",$link); 
    $q=mysql_fetch_row($res);
    echo $q[0];
    Me donne :
    Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.6.0\www\control_sms.php on line 8

  10. #10
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    peut-être la présence d'un 2 en trop dans la requête en php

    SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 500000000 MINUTE) AND NOW() HAVING COUNT(*) > 21
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  11. #11
    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 Patrick, non c'était volontaire afin de ne pas avoir de result.

    Bon je viens de tout retaper, je ferais un test en php sur le nombre de lignes retournées et non obtenir un true ou false à partir de mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $res = mysql_query("SELECT COUNT(*) FROM sms_tx WHERE time_tx BETWEEN (NOW()-INTERVAL 500 MINUTE) AND NOW()",$link); 
    $compte = mysql_fetch_array($res);
    echo $compte[0];
    Merci, bonne journée

  12. #12
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Il est tôt, je ne suis peut être encore pas bien reveillé, mais il me semble
    1) qu'un fetch_array n'est pas un fetch_num
    2) et que votre resultset vous retourne un tableau à deux dimensions [ligne][colonne]

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Erreur mysql suite à une requête
    Par vimarty dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/01/2008, 09h27
  2. besoin d'aide sur une requête mysql
    Par unmulot dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/07/2006, 13h17
  3. Probleme avec une requête MySQL
    Par Alexlesilex dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/05/2006, 17h48
  4. Intégrer un tableau dans une requête mysql
    Par GarGamel55 dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/02/2006, 19h16
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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