【问题标题】:create chart with oracle query使用 oracle 查询创建图表
【发布时间】:2015-10-14 04:29:04
【问题描述】:

我正在尝试使用来自 oracle 数据库的查询创建图表饼图。 我已经连接到数据库并回显结果,但我无法创建图表。对此有何建议?

<?php
$tns = "  
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxxx.xxx.xxx)(PORT = xxxx))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )
       ";
$db_username = "xxx";
$db_password = "xxxxR";
try{
    $conn = new PDO("oci:xxxx=".$tns,$db_username,$db_password);
}catch(PDOException $e){
    echo ($e->getMessage());
}
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   echo "Connected to Oracle!";
}
 
$query = "SELECT T71.C_C1003000015, COUNT (T71.C1)
  FROM ICT_DATABASE.T71 T71
WHERE (T71.C_C1003000015 NOT IN (exelllllllllxx.xxxx.xxx'))
       AND trunc(T71.ARRIVAL_DATE) = trunc(sysdate)
GROUP BY T71.C_C1003000015";
 
$stmt = $conn->prepare($query);
 
if ($stmt->execute()) {
    echo "<h4>$query</h4>";
    echo "<pre>";
    while ($row = $stmt->fetch()) {
        print_r($row);
    }
    echo "</pre>";
	}
	
	
?>

该代码正在运行并导出数据我现在如何创建图表?

【问题讨论】:

  • 如果您愿意,我可以将其添加到您的代码中。让我看看$row 的样子。
  • 起初,我以为有人把它弄丢了。让我看看
  • 我会告诉你,等一下。 $row 只是一个字符串?
  • 好的,仍在尝试让用户理解数据。看起来我们需要拆分 IT-EXT-COSMOTE- 上的字符串,将部门连同他们的数值一起从那里取出。是否不止行?然后,我们是否需要跨多行汇总每个部门的这些数字?

标签: javascript php html oracle


【解决方案1】:

好的,这就去。

您需要将 Google 的脚本添加到您的页面。

&lt;script src="https://www.google.com/jsapi"&gt;&lt;/script&gt;

将此 div 添加到您想要图表的位置...

&lt;div id="piechart" style="width: 900px; height: 500px;"&gt;&lt;/div&gt;

然后添加此 JavaScript,假设您将输出保留在 &lt;pre&gt; 元素中

google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);

function drawChart() {
  var googleArray = [];
  googleArray.push(['Department', 'Value']);
  var testRow = document.getElementsByTagName('PRE')[0].innerHTML;
  var testArr = testRow.split('IT-EXT-COSMOTE-');
  var deptSplit;

  for (var i = 0; i < testArr.length; i++) {
    if (testArr[i] !== '') {
      deptSplit = testArr[i].split(' - ');
      googleArray.push([deptSplit[0], Number(deptSplit[1])]);
    }
  }

  var dataTable = new google.visualization.arrayToDataTable(googleArray, false);
  var chartOptions = {title: 'Department Totals'};
  var chart = new google.visualization.PieChart(document.getElementById('piechart'));
  chart.draw(dataTable, chartOptions);
}

如果您需要进一步的帮助,请告诉我...

【讨论】:

  • 好的,php 在服务器上运行。谷歌图表在客户端上运行。所以我假设您将数据保留在&lt;pre&gt; 元素中。然后当页面加载时,我提供的代码将从&lt;pre&gt; 元素中取出数据并将其加载到数组中。但是还有许多其他方法可以做到这一点。只是尝试最简单的......
猜你喜欢
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 2019-04-21
相关资源
最近更新 更多