Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
Mysql 网页不显示图表或任何错误_Mysql_Pdo_Chart.js - Fatal编程技术网

Mysql 网页不显示图表或任何错误

Mysql 网页不显示图表或任何错误,mysql,pdo,chart.js,Mysql,Pdo,Chart.js,我刚开始了我的冒险。我试图修改我找到的所有教程,以满足我的需要,但不幸的是页面没有显示图表,也没有给出任何错误。谁能给点建议吗 $result=''; $sql="SELECT Q1.uUserName AS Technician, sum(if(Q2.dCatFK=1,1,0)) AS AM, sum(if(Q2.dCatFK=2,1,0)) as PM FROM T_users as Q1 LEFT JOIN (SELECT dUser2FK, dCatFK FROM T_Defects

我刚开始了我的冒险。我试图修改我找到的所有教程,以满足我的需要,但不幸的是页面没有显示图表,也没有给出任何错误。谁能给点建议吗

$result='';
$sql="SELECT Q1.uUserName AS Technician, sum(if(Q2.dCatFK=1,1,0)) AS AM,  sum(if(Q2.dCatFK=2,1,0)) as PM
FROM T_users as Q1 LEFT JOIN (SELECT dUser2FK, dCatFK FROM T_Defects 
INNER JOIN T_settings WHERE (dDateClosed >= FYDateFROM AND dDateClosed <= FYDateTO)";
if (!empty($_SESSION['dept'])) { $sql .= ' AND dDeptFK = '.$_SESSION['dept'];}
if (!empty($_SESSION['area'])) { $sql .= ' AND dAreaFK = '.$_SESSION['area'];}
if (!empty($_SESSION['month'])){ $sql .= ' AND MONTH(dDateClosed) = '.$_SESSION['month'];}
$sql .=") as Q2 ON Q1.uPK = Q2.dUser2FK GROUP BY Q1.uUserName ORDER BY sum(if(dCatFK is not null,1,0)) DESC, Q1.uUsername;";
try{
  $stmt = $con->prepare($sql);
  $stmt->execute();
  $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $label = array();
    $data = array();
    foreach ($result as $row) {
        $label[]  = $row["Technician"];
        $data[] = $row["AM"];
        $data[] = $row['PM'];
    }

} catch(PDOException $e){
  echo 'ERROR: ' . $e->getMessage();
}

输入错误,已更改此项:

json_encodearray_值$data[0]

为此:


json_encodearray_values$data

您将$data附加AM和PM数据,因此没有两个数据集,而只有一个数据集。因为$data[1]不存在。声明另外2个数组并分别在其中插入AM和PM的数据,然后在$data[0]处插入$dataAM。。。让代码自己说话:

…PHP文件

…HTML文件


我急忙想找到一个解决办法,但没有完全奏效。上面显示了图表,但第二个系列不读取其数据,它读取并显示第一个系列。。。我仍然需要一些关于如何正确显示数组的建议
<canvas id="myChart_Fixed" width="1000" height="400"></canvas>
<script>
var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
var ctx = document.getElementById("myChart_Fixed");
var myChart = new Chart(ctx, {
  type: 'bar',
  data: {
      labels:<?=json_encode($label);?>,
      datasets: [{
          label: 'Fixed AM',
          data:<?=json_encode(array_values($data[0]));?>,
          backgroundColor: 'rgba(54, 162, 235, 0.2)',
          borderColor: 'rgba(54, 162, 235, 1)',
          borderWidth: 1
      },
      {
          label: 'Fixed PM',
          data:<?=json_encode(array_values($data[1]));?>,
          backgroundColor: 'rgba(255, 99, 132, 0.2)',
          borderColor: 'rgba(255,99,132,1)',
          borderWidth: 1
      }
    ]
  },
  options: {
      scales: {
          yAxes: [{
              ticks: {
                  beginAtZero:true
              }
          }]
      }
  }
});
</script>
 $data = array();
 $dataAM = array();
 $dataPM = array();
    foreach ($result as $row) {
        $label[]  = $row["Technician"];
        $dataAM[] = $row["AM"];
        $dataPM[] .=$row['PM'];
    }
 $data[0] = $dataAM;
 $data[1] = $dataPM;
 data: {
      labels:<?=json_encode($label);?>,
      datasets: [{
          label: 'Fixed AM',
          data:<?=json_encode(array_values($data[0]));?>,
          backgroundColor: 'rgba(54, 162, 235, 0.2)',
          borderColor: 'rgba(54, 162, 235, 1)',
          borderWidth: 1
      },
      {
          label: 'Fixed PM',
          data:<?=json_encode(array_values($data[1]));?>,
          backgroundColor: 'rgba(255, 99, 132, 0.2)',
          borderColor: 'rgba(255,99,132,1)',
          borderWidth: 1
      }
    ]
  },