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 :

Requete moyennes des valeurs sur une journée


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut Requete moyennes des valeurs sur une journée
    Bonjour,
    Dans le cadre d'une station météo je souhaite afficher un graphique avec les moyennes par heure des températures et taux d'humidité sur la journée en cours soit de 00:00 à maintenant :

    Collecte des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Collecte données THP
    $result = getAllReadingsGraphics("SendorDataTHP");
    while ($data = $result->fetch_assoc()){
      $sensor_dataTHP[] = $data;
    }
    $readings_timeTHP = array_column($sensor_dataTHP, 'reading_time');
    J'ai la fonction suivante :
    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
     function getAllReadingsGraphics($BDD) {
        global $servername, $username, $password, $dbname;
     
        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
          die("Connection failed: " . $conn->connect_error);
        }
          if($BDD == "SendorDataTHP") {
           $sql = "SELECT (reading_time,'%Y-%m-%d %H:00:00') AS heure, AVG(TEMP) AS moyenne_TEMP, AVG(HUM) AS moyenne_HUM FROM SensorDataTHP WHERE DATE(reading_time) = CURDATE() GROUP BY DATE_FORMAT(reading_time,'%Y-%m-%d %H:00:00')";}
     
            elseif($BDD == "SendorDataQA") {
           // $sql = "SELECT id, sensor, pm25, pm10, reading_time FROM SensorDataQA order by reading_time desc limit " . $limit;}
     
            if ($result = $conn->query($sql)) {
              return $result;
            }
            else {
              return false;
            }
        $conn->close(); 
      }
    }
    J'ai le message suivant concernant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($data = $result->fetch_assoc())
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught Error: Call to a member function fetch_assoc() on null in /storage/ssd4/987/21478987/public_html/esp-charts.php:29 Stack trace: #0 {main} thrown in /storage/ssd4/987/21478987/public_html/esp-charts.php on line 29
    Je précise que je débute .

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    L'erreur veux dire que tu essai d'appeller fetch_assoc() sur un objet qui est nul.
    Dans ton cas ca veux dire que $result, ce qui veux dire que tu as un problème dans ta fonction getAllReadingsGraphics ui ne renvois pas ce que tu attends.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Bonjour Grunk,
    Je suppose que cela vient de la construction de ma requête


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT (reading_time,'%Y-%m-%d %H:00:00') AS heure, AVG(TEMP) AS moyenne_TEMP, AVG(HUM) AS moyenne_HUM FROM SensorDataTHP WHERE DATE(reading_time) = CURDATE() GROUP BY DATE_FORMAT(reading_time,'%Y-%m-%d %H:00:00')";}
    Je souhaite avoir en retour un tableau avec les valeurs moyennes par heure sur la journée courante avec :
    heure, moyenne_TEMP, moyenne_HUM

  4. #4
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 386
    Points : 788
    Points
    788
    Par défaut
    Bonjour,

    Prenez garde à indenter votre code correctement.

    Peut être que php fournit un CLI d'auto formatage à la sauvegarde à configurer dans votre IDE,
    je ne sais pas.

    Mais très clairement là vous allez vous y perdre toute seule.

    Cela vous permettra aussi d'éviter d'oublier de fermer
    les connections de manière inappropriée.

    Après il y a toute une théorie sur la manière
    de gérer les connexions, mais cela dépend
    de la manière dont votre serveur
    exécute les requêtes http,
    je n'ai pas tellement envie de rentrer la dedans
    https://www.php.net/manual/en/features.persistent-connections.php

    Une bonne indentation devrait permettre de prévenir des problèmes.

    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
    <?php
    function getAllReadingsGraphics($BDD) {
    	global $servername, $username, $password, $dbname;
     
    	$conn = new mysqli($servername, $username, $password, $dbname);
     
    	if ($conn->connect_error) {
    		// die("Connection failed: " . $conn->connect_error);
                    error_log("Connection failed: " . $conn->connect_error, 0);
                    return false;
    	}
     
    	if($BDD == "SendorDataTHP") {
    		$sql = "SELECT 
    				(reading_time,'%Y-%m-%d %H:00:00') AS heure, 
    				AVG(TEMP) AS moyenne_TEMP, 
    				AVG(HUM) AS moyenne_HUM 
    			FROM SensorDataTHP 
    			WHERE DATE(reading_time) = CURDATE() 
    			GROUP BY DATE_FORMAT(reading_time,'%Y-%m-%d %H:00:00')
    		";
    	}elseif($BDD == "SendorDataQA") {
    		// $sql = "SELECT id, sensor, pm25, pm10, reading_time FROM SensorDataQA order by reading_time desc limit " . $limit;}
     
    	}
     
    	$result = $conn->query($sql);
    	$conn->close(); 
    	return $result;
    }
    Finalement, vous pourriez prendre avantage de fetch_all tel que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $readings_timeTHP = [];
     
    $result = getAllReadingsGraphics("SendorDataTHP");
    if($result) {
        $rows = $result->fetch_all(MYSQLI_ASSOC);
        $readings_timeTHP = array_column($rows, 'reading_time');
    }
    Des suggestions.

    Bonne journée.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par unanonyme Voir le message
    Une bonne indentation devrait permettre de prévenir des problèmes.
    Effectivement il n'y a pas photo c'est beaucoup plus clair donc j'ai pris mon temps pour comprendre la proposition surtout que je ne suis pas très familié de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Collecte données THP
    $readings_timeTHP = [];
    $result = getAllReadingsGraphics("SendorDataTHP");
    if($result) {
      $rows = $result->fetch_all(MYSQLI_ASSOC);
      $readings_timeTHP = array_column($rows, 'reading_time');
    }
    Ensuite pour reprendre les valeurs dans le graphique j'ai essayé comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $TEMP = json_encode(array_reverse(array_column($rows, 'moyenneTEMP')), JSON_NUMERIC_CHECK);
    $HUM = json_encode(array_reverse(array_column($rows, 'moyenne_HUM')), JSON_NUMERIC_CHECK);
    mais avec une erreur :
    Warning: Undefined variable $rows in /storage/ssd4/987/21478987/public_html/esp-charts.php on line 56

    Fatal error: Uncaught TypeError: array_column(): Argument #1 ($array) must be of type array, null given in /storage/ssd4/987/21478987/public_html/esp-charts.php:56 Stack trace: #0 /storage/ssd4/987/21478987/public_html/esp-charts.php(56): array_column() #1 {main} thrown in /storage/ssd4/987/21478987/public_html/esp-charts.php on line 56
    la ligne 56 étant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $TEMP = json_encode(array_reverse(array_column($rows, 'moyenneTEMP')), JSON_NUMERIC_CHECK);

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 413
    Points : 4 859
    Points
    4 859
    Par défaut
    Bonjour,

    Corrigez moi si je me trompes mais faites attention à l'accolade fermante, vous l'avez commenté à la fin :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    elseif($BDD == "SendorDataQA") {
           // $sql = "SELECT id, sensor, pm25, pm10, reading_time FROM SensorDataQA order by reading_time desc limit " . $limit;}

    Ceci dit que la requête est exécutée seulement lorsque le nom de la table est SendorDataQA, vu que if ($result = $conn->query($sql)) est à l'intérieur de ce dernier elseif non ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    Ceci dit que la requête est exécutée seulement lorsque le nom de la table est SendorDataQA, vu que if ($result = $conn->query($sql)) est à l'intérieur de ce dernier elseif non ?
    Bien vu cette là je l'avais raté donc voici la version sans l'erreur bête :
    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
     function getAllReadingsGraphics($BDD) {
        global $servername, $username, $password, $dbname;
     
        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
          die("Connection failed: " . $conn->connect_error);
        }
          if($BDD == "SendorDataTHP") {
            $sql = "SELECT 
    				(reading_time,'%Y-%m-%d %H:00:00') AS heure, 
    				AVG(TEMP) AS moyenne_TEMP, 
    				AVG(HUM) AS moyenne_HUM 
    			FROM SensorDataTHP 
    			WHERE DATE(reading_time) = CURDATE() 
    			GROUP BY DATE_FORMAT(reading_time,'%Y-%m-%d %H:00:00')
    		";}
     
            if ($result = $conn->query($sql)) {
              return $result;
            }
            else {
              return false;
            }
        $conn->close(); 
      }

    L'erreur est désormais :
    Fatal error: Uncaught mysqli_sql_exception: Operand should contain 1 column(s) in /storage/ssd4/987/21478987/public_html/esp-database.php:87 Stack trace: #0 /storage/ssd4/987/21478987/public_html/esp-database.php(87): mysqli->query() #1 /storage/ssd4/987/21478987/public_html/esp-charts.php(29): getAllReadingsGraphics() #2 {main} thrown in /storage/ssd4/987/21478987/public_html/esp-database.php on line 87

    Au cas où la BDD :
    Code sql : 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
    CREATE TABLE `SensorDataTHP` (
      `id` int(6) UNSIGNED NOT NULL,
      `sensor` varchar(30) NOT NULL,
      `TEMP` decimal(6,2) DEFAULT NULL,
      `HUM` decimal(6,2) DEFAULT NULL,
      `PRES` decimal(6,2) DEFAULT NULL,
      `TEMPR` decimal(6,2) DEFAULT NULL,
      `reading_time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Déchargement des données de la table `SensorDataTHP`
    --
     
    INSERT INTO `SensorDataTHP` (`id`, `sensor`, `TEMP`, `HUM`, `PRES`, `TEMPR`, `reading_time`) VALUES
    (3, 'THP', 17.24, 66.41, 1014.15, 16.89, '2023-12-23 15:16:48'),
    (4, 'THP', 17.28, 66.16, 1014.08, 16.89, '2023-12-23 15:18:51'),
    (5, 'THP', 17.38, 65.99, 1014.07, 16.99, '2023-12-23 15:21:51'),
    (6, 'THP', 17.23, 65.97, 1014.03, 16.99, '2023-12-23 15:22:21'),
    (7, 'THP', 17.41, 65.68, 1014.05, 16.99, '2023-12-23 15:24:26'),
    (8, 'THP', 17.48, 65.24, 1014.11, 17.09, '2023-12-23 15:26:28'),
    (9, 'THP', 17.50, 65.04, 1014.11, 17.08, '2023-12-23 15:29:29'),
    (10, 'THP', 25.00, 12.00, 15.00, 2.00, '2023-12-23 15:31:24'),
    (11, 'THP', 17.52, 65.03, 1014.15, 17.08, '2023-12-23 15:31:31'),
    (12, 'THP', 17.54, 64.83, 1014.19, 17.08, '2023-12-23 15:34:34');


    Pour info j'ai bien des valeurs le 28/12 je n'ai extrait que les premiers enregistrements.

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 413
    Points : 4 859
    Points
    4 859
    Par défaut
    Tu as oublié la fonction date_format au début de (reading_time,'%Y-%m-%d %H:00:00') AS heure, la correction: date_format(reading_time,'%Y-%m-%d %H:00:00') AS heure

  9. #9
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    J'ai bien avancé grâce à vos conseils, j'ai encore un soucis je n'ai plus d'erreur mais pas d'affichage de données :
    Code html : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php
    // Collecte données THP
    $readings_timeTHP = [];
    $result = getAllReadingsGraphics("SendorDataTHP");
    if($result) {
      $rows = $result->fetch_all(MYSQLI_ASSOC);
      }
      
     
    $TEMP = json_encode(array_reverse(array_column($rows, 'moyenne_TEMP')), JSON_NUMERIC_CHECK);
    $reading_timeTHP = json_encode(array_reverse(array_column($rows,'heure')), JSON_NUMERIC_CHECK);
    var_dump($TEMP);
    var_dump($reading_timeTHP);
     
     
    $result->free();
     
    ?>
     
    <!DOCTYPE html>
    <html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">    
     
            <meta http-equiv="refresh" content="30">
            <link rel="stylesheet" type="text/css" href="esp-style.css">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <script src="https://code.highcharts.com/highcharts.js"></script>
        </head>
        <header class="header">
            <h1>📊 ESP Weather Station GRAPHICS</h1>
            <form method="get">
                <input type="number" name="readingsCount" min="20" placeholder="Number of readings (<?php echo $readings_count; ?>)">
                <input type="submit" value="UPDATE">
            </form>
        </header>
        <a href="esp-weather-station.php" class="favorite styled"  type="button">DASHBOARD</a>
        <a href="esp-data.php" class="favorite styled"  type="button">DATA</a><br><br>
     
     
      <style>
        body {
          min-width: 310px;
            max-width: 1280px;
            height: 500px;
          margin: 0 auto;
        }
        h2 {
          font-family: Arial;
          font-size: 2.5rem;
          text-align: center;
        }
      </style>
      <body>
     
     
        <div id="chart-temperature" class="container"></div>
     
    <script>
     
    var TEMP = <?php echo $TEMP; ?>;
     
    var reading_time = <?php echo $reading_timeTHP; ?>;
     
    //---------------TEMPERATURE-------------------
    var chartT = new Highcharts.Chart({
      chart:{ renderTo : 'chart-temperature' },
      title: { text: ' Temperature' },
      series: [{
        name : 'value',
        showInLegend: false,
        color: '#606060',
        data: TEMP
      }
      ],
      plotOptions: {
        line: { animation: false,
          dataLabels: { enabled: true }
        },
        series: { color: '#059e8a' }
      },
      xAxis: { 
        type: 'datetime',
        categories: reading_time
      },
      yAxis: {
        title: { text: 'Temperature (Celsius)' }
       
      },
      credits: { enabled: false }
    });
     
     
    </script>
    </body>
    </html>

    J'ai ajouté ceci :
    var_dump($TEMP);
    var_dump($reading_timeTHP);

    Et j'ai le résultat suivant :
    string(199)
    "[10.8535,10.77,10.95,11.099583,11.131818,11.323182,11.800714,12.438333,12.884783,12.155556,11.885833,11.475,10.837917,10.615,10.447857,10.414583,10.516,10.652174,10.970952,11.128636,11.051,11.182609]"
    string(485)
    "["2023-12-28 21:00:00","2023-12-28 20:00:00","2023-12-28 19:00:00","2023-12-28 18:00:00","2023-12-28 17:00:00","2023-12-28 16:00:00","2023-12-28 15:00:00","2023-12-28 14:00:00","2023-12-28 13:00:00","2023-12-28 12:00:00","2023-12-28 11:00:00","2023-12-28 10:00:00","2023-12-28 09:00:00","2023-12-28 08:00:00","2023-12-28 07:00:00","2023-12-28 06:00:00","2023-12-28 05:00:00","2023-12-28 04:00:00","2023-12-28 03:00:00","2023-12-28 02:00:00","2023-12-28 01:00:00","2023-12-28 00:00:00"]"
    Donc j'ai bien des données est-ce un pb de format???

  10. #10
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 413
    Points : 4 859
    Points
    4 859
    Par défaut
    Bonjour,

    Tu veux dire que les données du graphique ne sont pas affichées? car je viens de tester ton code, Apart l'erreur de la variable indéfinie $readings_count; que j'ai corrigé, le graphe s'affiche correctement sans soucis.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    Bonjour,

    Tu veux dire que les données du graphique ne sont pas affichées? car je viens de tester ton code, Apart l'erreur de la variable indéfinie $readings_count; que j'ai corrigé, le graphe s'affiche correctement sans soucis.
    Je viens de faire la correction et effectivement les données s'affichent correctement j'ai encore quelques questions,
    Pour inverser l'ordre des donnés car pour le moment je commence par la dernière heure enregistrée et ensuite je remonte le temps
    Comment arrondir les nombres à 1 chiffre après la virgule.

    Mercu

  12. #12
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 413
    Points : 4 859
    Points
    4 859
    Par défaut
    Bonjour,

    Pour inverser l'ordre il faudrait supprimer la fonction array_reverse, cette fonction permet d'inverser les valeurs d'un tableau...

    Et pour arrondir les nombres à deux chiffres après la virgule il y'a deux possibilités, la plus simple c'est en SQL en utilisant la fonction round
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    round(AVG(TEMP),2) AS moyenne_TEMP

    Ou bien en PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $TEMP = json_encode(array_map(function($tmp){return round($tmp,2);},array_column($rows, 'moyenne_TEMP')),JSON_NUMERIC_CHECK);

  13. #13
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 35
    Points : 16
    Points
    16
    Par défaut
    J'ai appliqué les 2 correctifs et le résultat est très concluant.
    Un grand merci
    Je vais maintenant m'attaquer à ajouter 2 lignes avec le mini et le max de la journée.

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

Discussions similaires

  1. Moyenne des valeurs d'une ArrayList
    Par Moux88 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/06/2016, 12h31
  2. [XL-2013] Reporter des valeurs sur une colonne, exceptée une
    Par carte_blanche dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/04/2015, 07h53
  3. Réponses: 2
    Dernier message: 12/10/2012, 08h49
  4. [MySQL] Récupération des valeurs sur une recherche multitable
    Par flozza dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/01/2012, 17h23
  5. récupérer des valeurs sur une page web
    Par houwa dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/07/2008, 14h27

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