Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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_Pie Chart - Fatal编程技术网

Php 我的';谷歌图表派';只显示薄片

Php 我的';谷歌图表派';只显示薄片,php,pie-chart,Php,Pie Chart,当我将数据回送到饼图时,仅显示百分比为1%和0.2%的薄片。这显然不是它应该显示的100%。我试过各种组合,但运气不好。 请参见此处的示例: 我的代码: <?php include "config.php"; $query = "SELECT COUNT(CASE WHEN Success = '1' THEN 1 ELSE NULL END) AS Successes, COUNT(CASE WHEN Success = '0

当我将数据回送到饼图时,仅显示百分比为1%和0.2%的薄片。这显然不是它应该显示的100%。我试过各种组合,但运气不好。 请参见此处的示例:

我的代码:

<?php
  include "config.php";
           
  $query = "SELECT COUNT(CASE WHEN Success = '1' THEN 1 ELSE NULL END) AS Successes, COUNT(CASE WHEN Success = '0' AND EndTime > '1970-01-01 00:00:00' THEN 1 ELSE NULL END) AS Failures, COUNT(CASE WHEN Success = '0' AND EndTime = '1970-01-01 00:00:00' THEN 1 ELSE NULL END) As Incompletes, COUNT(*) AS Total FROM DiskOperationLog";

 $result = mysqli_query($dbhandle, $query);  
 ?>  
 <!DOCTYPE html>  
 <html>  
      <head>
  <meta http-equiv="refresh" content="300">
  <title>WipeDrive Dashboard</title>
  <link rel="icon" href="favicon.png" sizes="16x16" type="image/png">
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
</head>
           <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>  
           <script type="text/javascript">  
           google.charts.load('current', {'packages':['corechart']});  
           google.charts.setOnLoadCallback(drawChart);  
           function drawChart()  
           {  
                var data = google.visualization.arrayToDataTable([  
                   ['Success', 'Fail'],
                                             
                          <?php  
                         while($row = mysqli_fetch_array($result)) {   
                         echo "['Successes', '$row[0]'], ['Failures', '$row[1]']";
                           }  
                           ?>  
          
                     ]);  
                var options = {  
                      title: 'Wipe Results',
                      pieSliceText: 'value-and-percentage',
                      slices: {0: {color: '#1bbd0e'}, 1:{color: '#ff3333'}}, 
                      is3D:true,  
                     };  

                var chart = new google.visualization.PieChart(document.getElementById('piechart'));  
                chart.draw(data, options);  
           }  
           </script>  
      </head>  
      <body>  
           <br /><br />  
           <div style="width:900px;">  
                <h3 align="left">WipeDrive Dashboard</h3>  
                <br />  
                <div id="piechart" style="width: 755px; height: 375px;"></div>  
           </div>  
      </body>  
 </html>
如果我在下面回显,图表确实显示100%,并且看起来它正在工作。因此,我想添加第二个值是这里的问题,我错过了一个重要的步骤/功能/选项

echo "['Successes', '$row[0]']";
提前谢谢

根据,您误用了
google.visualization.arrayToDataTable

此外,您不需要使用循环,因为您始终只有一行

以下各项应正确初始化
数据
变量:

<?php $row = mysqli_fetch_array($result); ?>
var data = google.visualization.arrayToDataTable([
  [
    {label: 'Outcome', type: 'string'},
    {label: 'Count', type: 'number'},
  ],
  ['Success', parseInt('<?php echo $row[0]; ?>')],
  ['Fail', parseInt('<?php echo $row[1]; ?>')]
]);

var data=google.visualization.arrayToDataTable([
[
{label:'output',type:'string'},
{标签:'Count',类型:'number'},
],
['Success',parseInt(''),
['Fail',parseInt('')]
]);
如果短开放标记被激活,您可以使用
而不是
,根据,您误用了
google.visualization.arrayToDataTable

此外,您不需要使用循环,因为您始终只有一行

以下各项应正确初始化
数据
变量:

<?php $row = mysqli_fetch_array($result); ?>
var data = google.visualization.arrayToDataTable([
  [
    {label: 'Outcome', type: 'string'},
    {label: 'Count', type: 'number'},
  ],
  ['Success', parseInt('<?php echo $row[0]; ?>')],
  ['Fail', parseInt('<?php echo $row[1]; ?>')]
]);

var data=google.visualization.arrayToDataTable([
[
{label:'output',type:'string'},
{标签:'Count',类型:'number'},
],
['Success',parseInt(''),
['Fail',parseInt('')]
]);

如果短开放标记被激活,您可以使用
而不是

我相信问题来自您的SQL查询。你得到的四个值是什么?我怀疑
Total
successfulls+Failures
大得多。多亏了费边,总数将是227(成功181次,失败33次,未完成10次)。因此,即使它把所有的都占了,也应该远远超过1%。此外,如果我选择成功或失败,它将显示100%,值为181或33。我相信问题来自您的SQL查询。你得到的四个值是什么?我怀疑
Total
successfulls+Failures
大得多。多亏了费边,总数将是227(成功181次,失败33次,未完成10次)。因此,即使它把所有的都占了,也应该远远超过1%。此外,如果我选择成功或失败,它将显示100%,值为181或33。如果我使用字符串1:1,它将完全不显示任何数据。删除“标签”行,也不会发生任何事情。但是如果我把
[success',“failed']
添加到
上面,它将带我回到这个原因的根源<代码>['Succes','fail','],['Success',','','fail','''],通过在@FabianPijcke
var data=google.visualization.arrayToDataTable的脚本中添加parseInt解决了这个问题。([{label:'Success',type:'string'},{label:'fail',type:'number},],['successfulls',parseInt('']),['Failures',parseInt('])谢谢你的帮助!很高兴听到你把事情搞定了!:-)祝你今天愉快我根据你的评论更新了我的答案。请随意将我的答案标记为正确,以便StackOverflow成员知道他们不再需要关注这个问题:-)哦,实际上我认为这是因为Javascript将“42”视为字符串。因此,您可能只需执行
['Success',],
(PHP标记周围没有撇号)。你能告诉我这是否有效吗?这样我们就有了最好的答案?谢谢,如果我使用字符串1:1,它将完全不显示任何数据。删除“标签”行,也不会发生任何事情。但是如果我把
[success',“failed']
添加到
上面,它将带我回到这个原因的根源<代码>['Succes','fail','],['Success',','','fail','''],
通过在@FabianPijcke
var data=google.visualization.arrayToDataTable的脚本中添加parseInt解决了这个问题。([{label:'Success',type:'string'},{label:'fail',type:'number},],['successfulls',parseInt('']),['Failures',parseInt('])谢谢你的帮助!很高兴听到你把事情搞定了!:-)祝你今天愉快我根据你的评论更新了我的答案。请随意将我的答案标记为正确,以便StackOverflow成员知道他们不再需要关注这个问题:-)哦,实际上我认为这是因为Javascript将“42”视为字符串。因此,您可能只需执行
['Success',],
(PHP标记周围没有撇号)。你能告诉我这是否有效吗?这样我们就有了最好的答案?非常感谢。