【问题标题】:Displaying chart data from a database显示来自数据库的图表数据
【发布时间】:2013-06-19 01:16:12
【问题描述】:

我按照http://docs.highcharts.com/#preprocessing-data-from-a-database 中的说明使用 php PDO 和 mysql 显示来自数据库的一些数据,但我只在显示图表时得到切片。这是我的代码

型号

  public function get_proyectos_service_por_id($idproject) {

    $sql = "SELECT p.id_project, s.service_type, s.completion_status, s.id_service, sp.id_projectserv

    FROM projects p
    LEFT JOIN project_serv sp ON p.id_project = sp.id_project
    LEFT JOIN services s ON sp.id_service = s.id_service 
    WHERE p.id_project = ?";

    $stmt = $this->dbh->prepare($sql);

    $stmt->bindParam(1, $idproject, PDO::PARAM_INT);
    $stmt->execute();

    $rows = array();

    foreach( $stmt->fetchAll(PDO::FETCH_ASSOC) as $row ){ 

     $rows[] = array("service" =>$row['service_type'], "status" =>$row['completion_status']); 

 } 

 return $rows;
}

 // Now i call this method

 $project = new Proyecto();
 $serv = $project->get_proyectos_service_por_id($pro);

//这是JS的输出

$(function () {
                var options = {
                    chart: {
                        renderTo: 'chart_div',
                        defaultSeriesType: 'pie'
                    },
                    title: {
                        text: 'Datos de proyecto'
                    },

                    series: [{
                        data: [<?php echo implode(",", $serv); ?>]

                    }]
                };
                new Highcharts.Chart(options);  
            });

【问题讨论】:

  • 你为什么不使用 json_encode?​​span>

标签: php jquery mysql pdo highcharts


【解决方案1】:

请熟悉关于预处理数据的文章http://docs.highcharts.com/#preprocessing,也可以使用json_encode()

【讨论】:

  • 是什么产生了你的 ?为什么不能使用 json_encode?像
  • 无论如何你能附上什么 echo implode(",", $serv);打印 ?因为问题在于将字符串解析为数字(highcharts 使用数字数据)或不正确的系列结构
  • 如果我回显 implode(",", $serv);我得到 Array,Array.. 如果我 var_dump($serv);我得到 array(2) { [0]=> array(2) { ["service"]=> string(16) "Reparacion 60kVA" ["status"]=> string(1) "2" } [1] => array(2) { ["service"]=> string(17) "Mantenimiento Gen" ["status"]=> string(1) "4" } }
  • 猜测问题可能出在将字符串解析为数字但我已更改为:array(2) { [0]=> array(2) { ["service"]=> string( 16) "Reparacion 60kVA" ["status"]=> int(2) } [1]=> array(2) { ["service"]=> string(17) "Mantenimiento Gen" ["status"]=> int(4) } } 我仍然只看到切片
  • 正如我所提到的,您需要数字,而且 highcharts 需要 x/y 参数,而不是您所拥有的自定义名称。喜欢(状态)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2018-04-02
相关资源
最近更新 更多