2015-06-15 35 views
0

我需要幫助我的谷歌圖表...我目前有一個getdata.php有一個查詢與我的數據庫表中的信息..我有一個頁面,使人們可以選擇一個特定的用戶,一旦用戶被選中,我使用_GET選項來獲得一個ID並將其提供給getData.php中的查詢,以便它的動態生成圖表,最終產品/圖表不會被顯示,因爲我有一個沒有列消息..這裏是我的getData.php和chart1.php顯示圖表。表沒有列在谷歌圖表和PHP

chart1.php

<script type="text/javascript"> 


// Load the Visualization API and the piechart package. 


google.load('visualization', '1', { 
'packages' : [ 'corechart' ] 


}); 

// Set a callback to run when the Google Visualization API is loaded. 

google.setOnLoadCallback(drawChart); 

function drawChart() { 
var jsonData = $.ajax({ 
    url : "getData.php?", 
    type: "GET" , // or GET, depends on your choice data 

    dataType : "json", 
    async : false 

}).responseText; 

    // Create our data table out of JSON data loaded from server. 
var data = new google.visualization.DataTable(jsonData); 

// Instantiate and draw our chart, passing in some options. 
var chart = new google.visualization.BarChart(document 
    .getElementById('chart_div')); 
chart.draw(data); 
} 

訪問getdata.php

if(isset($_SESSION['userid'])){ 
     $getid = $_GET['id']; 

     $graphquery =" SELECT sa.userid 
       ,q.question_group_id 
       ,sum(pa.answer)/(select count(q.question)*3)*100 as 'Percentage' 
     FROM surveyanswers sa 
     INNER JOIN possibleanswers pa 
     ON pa.possible_answer_id = sa.answer_voted 
     INNER JOIN questions q 
     ON q.question_id = sa.question_id 
     WHERE userid='$getid' 
     GROUP BY question_group_id"; 
     $result_set=mysql_query($graphquery, $connection); 

     echo '{ 
      "cols": [ 
       {"id":"","label":"Groupname","pattern":"","type":"string"}, 
       {"id":"","label":"Percentage","pattern":"","type":"number"} 
       ], 
      "rows": ['; 
      while($row =mysql_fetch_assoc($result_set)){ 

       echo '{"c":[{"v":"'.$row['question_group_id'].'"},{"v":'.$row['Percentage'].'}]},'; 
      } 

      echo ' ] 
     }'; 

} 
+0

如果您運行本身的select語句,你得到任何結果? – dstudeba

+0

這jsFiddle與靜態數據一起工作,所以必須有數據庫查詢或ajax調用有問題:https://jsfiddle.net/phcbo1vr/4/ –

+0

是@TheGunner,問題是在內部連接查詢時,我給在圖表生成的數據庫上的一個隨機用戶ID ...我的問題是,我不想有固定值的查詢這就是爲什麼我使用$ _GET [ID] ...我的JSON不是gwtting查詢結果,但我不知道我做了什麼錯誤 –

回答

0

所以這個問題是與我通過怎樣data..i添加一個額外的字段稱爲數據,並通過我的PHP獲得ID通過它chart1.php ...上訪問getdata.php我叫$ _GET [ID]現在它正在動態生成圖表。花了這麼多時間,但我想它是一個學習曲線。

chart1.php

function drawChart() { 
var jsonData = $.ajax({ 
    url : "getData.php", 
    type: "GET" , // or GET, depends on your choice data 
    data:"id=<?php echo "$_GET[id]";?>", 
    dataType : "json", 
    async : false 

}).responseText; 

訪問getdata.php

 $graphquery =" SELECT q.question_group_id 
    , qg.group_name 
    ,sum(pa.answer)/(select 
    count(q.question)*3)*100 as 'Percentage' 
    FROM surveyanswers sa 


INNER JOIN possibleanswers pa 
on pa.possible_answer_id = sa.answer_voted 



INNER JOIN questions q 
on q.question_id = sa.question_id 
and userid=$_GET[id] 

INNER JOIN questionsgroup qg 
on qg.question_group_id= q.question_group_id 
group by question_group_id;"; 



     $result_set=mysql_query($graphquery, $connection); 
0

我覺得你的SELECT字符串設置不正確。試試這個:

$graphquery ="SELECT sa.userid 
      ,q.question_group_id 
      ,sum(pa.answer)/(select count(q.question)*3)*100 as 'Percentage' 
    FROM surveyanswers sa 
    INNER JOIN possibleanswers pa 
    ON pa.possible_answer_id = sa.answer_voted 
    INNER JOIN questions q 
    ON q.question_id = sa.question_id 
    WHERE userid=" . $getid . " GROUP BY question_group_id"; 

您也可以在運行SQL語句來檢查之前打印出$graphquery變量。

+0

我已經實施這..看起來更正確,因爲concartenation ..現在的問題是與JSON ID的傳遞..如果那個作品,然後我相信這個查詢我應該得到我的圖表 –

+0

相反,現在的問題是與傳遞的ID通過th e url in ajax..if that works然後我beleive與這個查詢我應該得到我的圖表 –

0

看起來你沒有在你的ajax調用中通過你的url傳遞一個id變量。

var jsonData = $.ajax({ 
    url : "getData.php?id="+userid, 
    type: "GET" , // or GET, depends on your choice data 

    dataType : "json", 
    async : false 

}).responseText; 

的結果是$getid變量從未被填充,使您的SQL查詢無效。很明顯,你必須確保userid變量以某種方式被填充。

+0

我已經這樣做,雖然我得到了「用戶ID未定義」的錯誤..雖然我已經注意到我指出的錯誤, ID必須通過網址在Ajax ..任何其他建議傳遞URL?我試過「getData.php?id =「$ _ GET [id],並且得到了一個錯誤 –

+0

因此,我把'userid'作爲一個基本的佔位符,你必須定義一個基於已知值的地方。 '你可能會在你的chart1.php中定義它,在'var jsonData ...'之前加上'var userid ='<?= $ known_user_id?>''這樣的東西,你試過的東西只有在chart1.php也被稱爲'id _'的'_ _GET'變量,就像'chart1.php?id = 12345'。 –

+0

那是真的@TheGunner,已知的值沒有被選中,因爲它是在一個JavaScript和$ _GET作品inside php tags ..所以我添加了php標籤裏面的JavaScript ..謝謝你的幫助,你真的幫我得到我....cheers隊友! –