Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌图表从一行中获取数据_Php_Mysql_Charts_Google Visualization - Fatal编程技术网

Php 谷歌图表从一行中获取数据

Php 谷歌图表从一行中获取数据,php,mysql,charts,google-visualization,Php,Mysql,Charts,Google Visualization,我有一个由员工完成的不同时间(教学时间、服务时间和研究时间)的表格。我需要绘制员工的条形图和饼图,但x轴和图例只是时间的重复 sql语句之后来自sql的数据示例 $query ="SELECT teachinghours ,servicehours ,researchhours FROM staff_hour sh , staff s WHERE s.staffid = sh.staffid AND `staffperiodyear`= 'FY2018' AND s

我有一个由员工完成的不同时间(教学时间、服务时间和研究时间)的表格。我需要绘制员工的条形图和饼图,但x轴和图例只是时间的重复

sql语句之后来自sql的数据示例

  $query ="SELECT teachinghours ,servicehours ,researchhours 
   FROM staff_hour sh , staff s
   WHERE s.staffid = sh.staffid
   AND `staffperiodyear`= 'FY2018'
   AND s.staffid in (SELECT s.staffid from staff s where s.username = '$staffid1')";
 $res=mysqli_query($connect,$query);

load('current',{'packages':['bar']}){
load('current',{'packages':['bar']}){
var barsButton=document.getElementById('b1');
var pieButton=document.getElementById('b2');
barsButton.onclick=函数(){
drawSarahChart(“柱形图”);
}
pieButton.onclick=函数(){
drawSarahChart(“PieChart”);
}
drawSarahChart(“柱形图”);
});
功能图SarahChart(图表类型){
var chart=new google.visualization.ChartWrapper({
集装箱船:“Sarah_chart_div”});
var data=google.visualization.arrayToDataTable([
[“教学小时”,“小时],
如果您想要文字-->
'teachinghours'、'servicehurs'、'researchhours'

要在x轴上,则数据需要按以下方式进行结构

var data = google.visualization.arrayToDataTable([
  ['Type', 'Hours'],
  ['teachinghours', 1379],
  ['servicehours', 99],
  ['researchhours', 247]
]);
请参阅以下工作片段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
var data=google.visualization.arrayToDataTable([
['类型','小时'],
[teachinghours',1379],
[servicehours',99],
[‘研究时间’,247]
]);
var container=document.getElementById('chart_div');
var chart=新的google.visualization.ColumnChart(容器);
变量选项={
标题:“2018财年”,
宽度:400,
身高:300,
图例:{位置:'top',对齐:'start'},
工具提示:{isHtml:true}
};
图表绘制(数据、选项);
});

如果我将格式设置为表中的类型,我的数据库将大3倍,这在我的情况下是不可行的。是否有办法在“while($row=mysqli\u fetch\u array($res))”中回显名称?
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['bar']}).then(function() {
google.charts.load('current', {'packages':['bar']}).then(function() {
         var barsButton = document.getElementById('b1');
         var pieButton = document.getElementById('b2');
         barsButton.onclick = function() {
           drawSarahChart('ColumnChart');
         }
         pieButton.onclick = function() {
           drawSarahChart('PieChart');
         }
         drawSarahChart('ColumnChart');
       });
       function drawSarahChart(chartType) {
         var chart = new google.visualization.ChartWrapper({
         containerId: 'Sarah_chart_div'});
         var data = google.visualization.arrayToDataTable([
               ['teachinghours','Hour'],
               <?php 
                    while($row=mysqli_fetch_array($res))
                    {
                    echo "['".$row["servicehours"]."', ".$row[1]."],";
                    echo "['".$row["teachinghours"]."', ".$row[0]."],";
                    echo "['".$row["researchhours"]."', ".$row[2]."],";} 
                     ?>]);
         var options = {
           title: 'FY 2018',
           width: 400,
           height: 300,
           legend: { position: 'top', alignment: 'start' },
           tooltip: { isHtml: true }
         };
         chart.setOptions(options);
         chart.setChartType(chartType);
         chart.setDataTable(data);
         chart.draw();
var data = google.visualization.arrayToDataTable([
  ['Type', 'Hours'],
  ['teachinghours', 1379],
  ['servicehours', 99],
  ['researchhours', 247]
]);