php - 如何从mysql读取和写入数据到JSON,然后用于谷歌表格图表

标签 php mysql json

我在 mysql 数据库中有员工表 表列如.. 雇员号 埃纳姆 萨尔...等 我正在创建自定义查询页面..用户将在文本区域中输入查询,然后单击提交按钮..我想根据用户请求的列从mysql检索数据并希望显示谷歌图表。

我尝试通过 JSON 但没有成功

以下代码是我所做的...

<form action="fire.php" id="usrform" method="post" target="iframe1">
    <p> Enter custom query here...</p>
    <textarea name="query" form="usrform" wrap="hard soft" cols="60" rows="10"></textarea>                   <br>
     <input type="submit" value="Fire Query">
</form>

火.php页面...

$con = mysqli_connect($db_host,$db_username,$db_pass) or die ("could not connect to mysql");

mysqli_select_db($con,$db_name) or die ("no database");  
//query all records from the database
$query=$_POST['query'];
$returnArray = array();
$result = mysqli_query($con,$query);
while($rs = mysqli_fetch_array($result, MYSQL_ASSOC))    
{    
$returnArray[] = $rs;     
}
$fp = fopen('sampledata.json', 'w+');
fwrite($fp, json_encode($returnArray));
fclose($fp);
}
?>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
            <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
            <script type="text/javascript">

            // Load the Visualization API and the piechart package.
            google.load('visualization', '1', {'packages':['table']});

            // Set a callback to run when the Google Visualization API is loaded.
            google.setOnLoadCallback(drawChart);

            function drawChart() {
              var jsonData = $.ajax({
                  url: "getdata.php",
                  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.Table(document.getElementById('chart_div'));
              chart.draw(data, {width: 700, height: 400});
            }
            </script>
             <div id="chart_div"></div>
             </html>

getdata.php

<?php 
$string = file_get_contents("sampledata.json")`enter code here`;
echo $string;
?>

请就此提出建议,因为我没有得到表格

最佳答案

尝试改变

var jsonData = $.ajax({
              url: "getdata.php",
              dataType:"json",
              async: false
              }).responseText;

进入类似的内容

var jsonData;
var request = $.ajax({
  url: "getdata.php",
  dataType:"json",
  async: false,
  type: "GET"
});

request.done(function( msg ) {
  jsonData = $.parseJSON(msg.d);
  var data = new google.visualization.DataTable(jsonData);

  // Instantiate and draw our chart, passing in some options.
  var chart = new google.visualization.Table(document.getElementById('chart_div'));
  chart.draw(data, {width: 700, height: 400});
});

建议添加一个函数来调用图表,可能带有 json 数据参数。

关于php - 如何从mysql读取和写入数据到JSON,然后用于谷歌表格图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616517/

相关文章:

php - 按时间戳条目聚合和可视化 SQLite 数据库中的条目

php - 使用 PHP 从数据中提取 URL

php - 计算对象中的总和

PHP/MySQL - 显示 jquery 日历上每个日期的记录总数

c# - 为什么 JSON 空字符串在服务器端反序列化为 null?

java - 反序列化嵌套 Json 数组

php - bootstrap 通常如何工作,尤其是在 Zend Framework 中?

php - 在其他表中使用关系表的 ID

mysql - 清理 MySQL 存储过程参数

json - 使用 JSONEncoder 编码/解码符合协议(protocol)的类型数组