Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mysqli : problème avec valeur null

Si valeur "null" alors valeur la plus récente

    6 janvier 2020 à 17:24:06

    Bonjour,

    je fais un graphique avec morris.js mais pour qu'il marche je dois renseigner toutes les données. Le problème est que dans ma base de données, il y a des champs vides qu'éventuellement je devrais remplir lors de ma requête par la dernière valeur ou la plus récente.

    j'ai beau chercher sur le net je ne trouve pas de solution , aidez moi s'il vous plait !!!!

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      7 janvier 2020 à 8:51:41

      Bonjour,

      ChristCordon a écrit:

      éventuellement je devrais remplir lors de ma requête par la dernière valeur ou la plus récente

      Cela peut être assez compliqué ...

      Peux-tu nous en dire plus ? Ton code de récupération des valeurs notamment (requête SQL et structure des tables en jeu).

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        7 janvier 2020 à 18:53:39

        Bonjour, et merci de vous intéresser à mon problème.

        voici ma requête :

        <?php
        $query = "SELECT *, DATE_FORMAT(date, '%Y/%m/%d') AS date_fr  FROM mesexp WHERE puitsID='".$_GET['tagpuits']."' ORDER BY date DESC";
        $result = mysqli_query($connexion, $query);
        $chart_data = '';
        while($row = mysqli_fetch_array($result))
        {
         $chart_data .= "{ date:'".$row["date"]."', bsw:".$row["bsw"].", freq:".$row["freq"].", qtotal:".$row["qtotal"]."}, ";
        }
        $chart_data = substr($chart_data, 0, -2);
        ?>

        et la structure de ma bdd :


        je pense me tourner vers une combinaison de graphiques (ou courbes) ce serait plus simple je pense de faire des requêtes différentes pour chaque courbes et essayer de les combiner plutôt que générer un graphique d'un seul coup

        -
        Edité par ChristCordon 7 janvier 2020 à 18:56:42

        • Partager sur Facebook
        • Partager sur Twitter
          7 janvier 2020 à 23:32:33

          Peux-tu transmettre un exemple de données, quelques lignes de la table en question où l'on voit les NULL ?

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            8 janvier 2020 à 17:09:39

            Voici un exemple des valeurs de ma table :

            et le résultat dans mon code source :

            data:[{ date:'2019-01-23 00:00:00', bsw:80.0, freq:, qtotal:22.30}, { date:'2019-01-08 00:00:01', bsw:80.0, freq:, qtotal:}, { date:'2019-01-07 00:00:01', bsw:, freq:, qtotal:}],

            j'y ai réfléchi et vu que cela surtout servir pour du reporting de valeur, est ce que travailler sur les valeurs à inserer ne serait pas plus judicieux que de devoir faire une requête complexe (voir une usine à gaz) où il y aurait un risque que je m'y perde après plusieurs mois ... ? 

            • Partager sur Facebook
            • Partager sur Twitter
              8 janvier 2020 à 18:01:19

              Je t'ai posé ces questions car je pense qu'il vaudrait mieux revoir ton modèle de données en fait ...

              A mon avis tu devrais structurer ta base ainsi :

              • puit ( id_puit [pk], etc. )
              • mesexp ( id_mes [pk], id_puit [fk], date_mes, caracteristique, valeur, observation )

              Dans la table puit tu listes tous tes puits ...

              Dans la table mesexp tu enregistres une ligne par caractéristiques mesurées à un instant donné, la colonne valeur sera un DECIMAL(6,2), la colonne caracteristique sera un VARCHAR contenant le nom de la caractéristiques mesurées (l'équivalent de tes noms de colonnes actuels).

              Avantages :

              • ce modèle est évolutif, si tu mesures autre chose que ce qui existe aujourd'hui alors pas besoin de modifier la table en rajoutant une colonne ... juste une nouvelle valeur dans la colonne caracteristique ...
              • un ligne = une mesure, donc pas de colonne avec de valeur NULL, tu peux ensuite construire tes séries de valeur sans te prendre la tête avec les NULL
              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                12 janvier 2020 à 11:11:30

                rebonjour,

                désolé pour mon retour tardif, il est vrai que la structure de la bdd est beaucoup plus claire comme tu me l'as indiqué.

                j'essaie en ce moment de l'utiliser en reprenant mes requêtes mais je coince par ci par là notamment pour générer mon tableau ou est récupérer toutes mes valeurs comme celui ci

                je suis un grand débutant donc il me faut un peu de temps, je reviendrais dès que je serais de nouveau confronté au problème de mon graphique si tu as un peu de patience.

                Merci d'avance

                • Partager sur Facebook
                • Partager sur Twitter

                Mysqli : problème avec valeur null

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown