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

Langage SQL Discussion :

Erreur de code


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut Erreur de code
    Bonjour
    Je souhaite extraire les dernière 48h de mes enregistrements.
    Pour cela, j'utilise le code suivant :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    $query_temperature48 = $bd_meteo->query("SELECT DateHeure, Temp_E FROM data WHERE DateHeure >= DATE_ADD(MAX('DateHeure'), INTERVAL -2 DAY) ORDER BY DateHeure");
     
    while ($temp48 = $query_temperature48->fetch())
    {
    $data_temp48[] = '['.(strtotime($temp48['DateHeure'])*1000).', '.$temp48['Temp_E'].']';
    }
     
    ?>

    Mes celui-ci me retourne l'erreur suivante :
    Fatal error: Call to a member function fetch() on a non-object in /homepages/19/d486172578/htdocs/site_V3/pages/graphiques6.inc.php on line 6
    .

    Pour chercher d'où vient l'erreur, j'entre le code suivant :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $bd_meteo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    qui me renvoie cela :
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1111 Invalid use of group function' in /homepages/19/d486172578/htdocs/site_V3/pages/graphiques6.inc.php:4 Stack trace: #0 /homepages/19/d486172578/htdocs/site_V3/pages/graphiques6.inc.php(4): PDO->query('SELECT DateHeur...') #1 /homepages/19/d486172578/htdocs/site_V3/index.php(155): include('/homepages/19/d...') #2 {main} thrown in /homepages/19/d486172578/htdocs/site_V3/pages/graphiques6.inc.php on line 4
    Malheureusement, les connaissances sont encore trop limitées et je ne trouve pas...

    Quelqu'un pourrait m'aider?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Je viens de faire un test :
    En remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DateHeure >= DATE_ADD(MAX('DateHeure'), INTERVAL -2 DAY)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE YEAR(DateHeure) = 2014 AND MONTH (DateHeure) = 10
    , j'extrais bien les valeurs d'octobre 2014.

    J'en déduis que mon erreur est dans ce code, mais comment trier les dernières 48h?

  3. #3
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    il faut utiliser une sous-requête pour définir la valeur du MAX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DateHeure >= DATE_ADD(SELECT MAX(DateHeure) FROM data, INTERVAL -2 DAY)
    A voir si le SGBD accepte ce type de syntaxe.

    a+

    olivier

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Non, à mon avis c'est la fonction qui renvoit le jour / heure système que stefane26 ne connaît pas.

    Si c'est du MySQL, on peut utiliser CURRENT_TIMESTAMP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      SELECT DateHeure, Temp_E
        FROM data
       WHERE DateHeure >= CURRENT_TIMESTAMP - INTERVAL 2 DAY
    ORDER BY DateHeure;

  5. #5
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    oui c'est ce qu j'ai pensé au début, sauf qu'avec cette phrase
    Je souhaite extraire les dernière 48h de mes enregistrements.
    son analyse semble plus correct.

    Ex : si la requête est lancé un lundi (et que le WE est vraiment férié), elle ne sort aucun résultat

    olivier

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est vrai, cette phrase peut porter à confusion.

Discussions similaires

  1. Erreur système . Code : 1410 ?
    Par Interruption13h dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/05/2006, 08h59
  2. [Debutant][XSL] Erreur de code programmation
    Par SkyDev dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/03/2006, 22h38
  3. Erreur : ce code n'est pas connu
    Par ruman dans le forum VBA Access
    Réponses: 17
    Dernier message: 13/02/2006, 11h37
  4. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 22h16
  5. Erreur de code
    Par petdelascar dans le forum C
    Réponses: 7
    Dernier message: 12/12/2005, 08h15

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