2015-07-25 8 views
6

Questo è il codice qui sotto,
Prima ottengo i dati dal database:My Zingchart non mostra, cosa c'è che non va?

<?php 
//getDBConnect function 
require 'dbfunction.php'; 

//Get ID from form 
$id = $_GET['staffid']; 

//connect to database 
$con = getDBConnect(); 

if(!mysqli_connect_errno($con)){ 
    $sqlQueryStr = 
      "SELECT a.ai_Name, r.duration " . 
      "FROM report AS r, academicinstitution AS a " . 
      "WHERE r.staff_Id = '$id' " . 
      "AND r.ai_Id = a.ai_Id "; 

    $result = mysqli_query($con,$sqlQueryStr); 

    mysqli_close($con); 
    } else { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    //Get data into array 
    $emparray = array(); 
    while ($row = mysqli_fetch_assoc($result)) { 
     $emparray[] = $row; 
    } 

    //Group array by ai_Name 
    $grouparray = array(); 
     foreach($emparray as $item) 
     { 
      if(!isset($grouparray[$item["ai_Name"]])) 
      $grouparray[$item["ai_Name"]] = 0; 

      $grouparray[$item["ai_Name"]] += $item["duration"]; 
     } 
?> 

Poi procedere a rendere i dati per il grafico:

<script> 
    var dataBar= 
     <?php 
      foreach($grouparray as $keys => $value){ 
       echo $value.','; 
      } 
     ?>; 

    window.onload=function(){ 
     zingchart.render({ 
      id:'chartBar', 
      height:400, 
      width:600, 
      data:{ 
       "graphset":[ 
       { 
        "type":"bar", 
        "title":{"text":"BarChart"}, 
        "series":[ 
         { 
          "values":[dataBar] 
         } 
        ] 
       } 
       ] 
      } 
     }); 
    }; 
</script> 

<div id="chartBar"></div> 

Ho provato molti modi per inserire i dati, tuttavia il grafico non si carica ancora. Che cosa sta causando questo e come lo risolvo?

+0

Se la risposta risolve la tua domanda, ti preghiamo di accettarla in modo che altri possano vederla. –

risposta

5

Il problema è come si sta creando l'array dataBar. L'iterazione sui valori va bene, ma questo è quello che si sta effettivamente l'output:

var dataBar=1,2,3,4,5,; 

che non è una matrice ben formato. Prova a modificare:

var dataBar=[ 
    <?php 
     foreach($grouparray as $keys => $value){ 
      echo $value.','; 
     } 
    ?>]; 

quindi fare riferimento nella vostra JSON in questo modo:

"series":[ 
    { 
    "values":dataBar 
    } 
] 

Sono sulla squadra ZingChart. Holler se hai altre domande ZC.

Problemi correlati