2016-12-07 32 views
0

我想創建谷歌餅圖從數據庫中獲取表的幫助......但直到現在我沒有得到輸出......我搜查了幾個網站......但我沒有澄清什麼...請檢查我的代碼,並告訴無法從phpmyadmin生成餅圖

<?php 

mysql_connect('localhost','root',''); 
mysql_select_db('chart'); 

$sqlquery1="select * from pie_chart"; 

$sqlresult1=mysql_query($sqlquery1); 

$rows=array(); 

while($r=mysql_fetch_assoc($sqlresult1)) 
{ 
    $rows[]=$r; 
} 
$data= json_encode($rows); 
?> 
<html> 
<head> 
<!--Load the AJAX API --> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script  src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script> 

<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 data = new google.visualization.DataTable(); 
    data.addColumn("string", "Quarter"); 
    data.addColumn("number", "Number"); 

    data.addRows(<?php echo $data ?>); 

    ]); 

//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.PieChart(document.getElementById('chart_div')); 
    chart.draw(data,{width:400,height:240}); 
    } 

    </script> 
    </head> 

    <body> 
    <!--Div that will hold the pie chart --> 
    <div id="chart_div"></div> 
    </body> 
    </html> 
+0

什麼是錯誤您收到?作爲一個方面說明,當你想通過PHP標記你的Javascript中的數據時,你需要使用ECHO。所以在你的「data.addRows(<?php $ data?>);」將其改爲「data.addRows(<?php echo $ data?>);」因爲現在它沒有做任何事情。 – Strahdvonzar

+0

我會改變..但它會顯示警告:mysql_fetch_assoc()期望參數1是資源,在第12行C:\ xampp \ htdocs \ programs \ chart2.php中給出的布爾值 – manikandan

+0

您應該遠離mysql驅動程序在PHP導致它已被刪除,並將在PhP 7.0中不可用,請檢查「http://php.net/manual/en/mysqli-result.fetch-assoc.php」並嘗試根據它更改您的代碼。如果失敗,mysql_query將返回布爾值(假),所以可能你的查詢失敗了,並且它沒有返回任何結果,因此你得到的警告。 – Strahdvonzar

回答

0
<?php 
/* Establish the database connection */ 
$mysql =mysqli_connect('localhost', 'root', '', 'chart'); 
/* select all the tasks from the table piechart */ 
$result = $mysql->query('SELECT * FROM piechart'); 

/* 
    --------------------------- 
    example data: Table (piechart) 
    -------------------------- 
    Task  percent 
    job    30 
    daily   20 
    working   35 
    sleep   15  
*/ 


$rows = array(); 
$table = array(); 
$table['cols'] = array(

// Labels for your chart, these represent the column titles. 
/* 
    note that one column is in "string" format and another one is in "number" format 
    as pie chart only required "numbers" for calculating percentage 
    and string will be used for Slice title 
*/ 
       array('label' => 'task', 'type' => 'string'), 
       array('label' => 'percent', 'type' => 'number') 
       ); 

/* Extract the information from $result */ 
/* associate array are used in above ,so we used foreach loop*/ 
foreach($result as $r) 
{ 
    $temp = array(); 

    // The following line will be used to slice the Pie chart 

    $temp[] = array('v' => (string) $r['task']); 

    // Values of the each slice 

    $temp[] = array('v' => (int) $r['percent']); 

    //rows of side title 
    $rows[] = array('c' => $temp); 
} 
    $table['rows'] = $rows; 

    // convert data into JSON format 
    $jsonTable = json_encode($table); 
    //echo $jsonTable; 

?> 

<html> 
<head> 
<!--Load the Ajax API--> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<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); 

// Load the Visualization API and the piechart package. 
function drawChart() 
{ 
// Create our data table out of JSON data loaded from server. 
var bar_chart_data = new google.visualization.DataTable(<?php echo $jsonTable; ?>); 

var options = { 
       title: 'Daily Work log', 
       is3D: 'true',//3D effect true 
       width: 900, 
       height: 500 
       }; 

    // Instantiate and draw our chart, passing in some options. 
    // Do not forget to check your div ID 
var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 

chart.draw(bar_chart_data, options); 
} 

    </script> 
</head> 
      <body> 
      <!--this is the div that will hold the pie chart--> 
       <div id="chart_div" ></div> 
      </body> 
     </html> 
    </script> 
</head>