2015-07-25 15 views
6

to poniższy kod,
Najpierw uzyskać dane z bazy danych:Mój Zingchart nie pokazuje, co jest nie tak?

<?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"]; 
     } 
?> 

Potem przystąpić do wykonania danych do wykresu:

<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> 

Próbowałem wielu sposobów na wejście dane jednak wykres nadal się nie ładuje. Co to powoduje i jak mogę to naprawić?

+0

Jeśli odpowiedź rozwiąże Twoje pytanie, zaakceptuj ją, aby inni mogli ją zobaczyć. –

Odpowiedz

5

Problem polega na tym, jak tworzysz tablicę dataBar. Iterowanie wartościami jest w porządku, ale tak właśnie wyprowadzasz:

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

która nie jest dobrze uformowaną szyką. Spróbuj to zamiast:

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

następnie odwołać go w JSON tak:

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

jestem w zespole ZingChart. Holler, jeśli masz więcej pytań ZC.