Google chart php mysql

luigithen

Utente Attivo
31 Mar 2020
84
3
8
eccomi di nuovo qui stò diventando matto e non capisco quale sia il problema

il grafico che utilizzo funziona senza alcun problema ma solo se i dati sono in numero se invece sono in lettere il grafico non viene visualizzato

questo è il codice

PHP:
<?php include('../../session.php');?>
<?php
$DatabaseServer = "localhost";
$DatabaseUsername = "#";
$DatabasePassword = "#";
$DatabaseName = "#";

$Connection = mysqli_connect($DatabaseServer, $DatabaseUsername, $DatabasePassword, $DatabaseName);

if ($Connection === false) {
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

$selectsql = "SELECT anno, mese, SUM(spesa) AS spesa, SUM(punti) AS punti FROM punti WHERE id_cliente='" . $_GET["id_cliente"] . "'";
$result = mysqli_query($Connection, $selectsql);
?>
<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['bar']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Anno', 'Mese', 'Spesa', 'Punti'],
    <?php while($row = mysqli_fetch_array($result)){ ?>
          ['<?php echo $row['anno'];?>',
          <?php echo $row['mese'];?>,
          <?php echo "'".number_format($row['spesa'], 2, ',', '') ."'"?>,
          <?php echo $row['punti'];?>],
          <?php } ?>

        ]);

        var options = {
          chart: {
            title: 'Attività Cliente',
            /*subtitle: 'profitto cliente',*/
          },

        };

        var chart = new google.charts.Bar(document.getElementById('columnchart_material'));

        chart.draw(data, google.charts.Bar.convertOptions(options));
      }
    </script>
  </head>
  <body>
    <div id="columnchart_material" style="width: 800px; height: 350px;"></div>
  </body>
</html>

esempio il mese che nel database è settembre non lo mostra se invece lo cambio con 9 si vede
 
Ultima modifica:

si avevo letto e mi era sfuggita una cosa, ho solo un problema e spero che qualcuno mi aiuti

allora richiamo con il select in questo modo
PHP:
SELECT *, date_format(data_punti, '%e/%c/%Y') as data_punti, SUM(spesa) AS spesa, SUM(punti) AS punti FROM punti WHERE id_cliente GROUP by id_cliente desc

ma le date sono uguali forse sbaglio il select ? allego foto

data.png


allora provando la select nel db è corretto me lo divide solo nel grafico non lo visualizzo

PHP:
<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['bar']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Mese', 'Spesa', 'Punti'],
    <?php while($row = mysqli_fetch_array($result)){ ?>
          ['<?php echo $row['data_punti'];?>',
          <?php echo "'".number_format($row['spesa'], 2, ',', '') ."'"?>,
          <?php echo $row['punti'];?>],
          <?php } ?>

        ]);

        var options = {
          chart: {
            title: 'Attività Cliente',
            /*subtitle: 'profitto cliente',*/
          },

        };

        var chart = new google.charts.Bar(document.getElementById('columnchart_material'));

        chart.draw(data, google.charts.Bar.convertOptions(options));
      }
    </script>
  </head>
  <body>
    <div id="columnchart_material" style="width: 800px; height: 350px;"></div>
  </body>
</html>

devo fare piu attenzione mi ero dimenticato del get
 
Ultima modifica:

Discussioni simili