使用OCI8从Oracle获取数据并创建Google饼图


Fetch Data from Oracle using OCI 8 and create Google Pie Chart

从Oracle获取数据:

echo "<br/>Self User data<br/>";
$curs = oci_new_cursor($conn);
$varin1 = "111"; //employee_id
$varin2 = "FEB-2015"; //month_year
$varin3 = "1";
$stid = oci_parse($conn, "begin WEEKLY_EMPLOYEE_DETAILS(:varIn1,:varIn2,:cursbv); end;");
oci_bind_by_name($stid, ":varIn1", $varin1);
oci_bind_by_name($stid, ":varIn2", $varin2);
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);
oci_execute($curs);  // Execute the REF CURSOR like a normal statement id
echo "<pre>";
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    print_r($row) . "<br />'n";
}
oci_free_statement($stid);
oci_free_statement($curs);

以上代码的输出:

自用户数据

Array
(
    [EMPLOYEEID] => 111
    [EMPLOYEENAME] => John Doe
    [TOTAL_HOURS] => 24
    [STATUS] => 1
    [WEEK_ID] => 2
)
Array
(
    [EMPLOYEEID] => 111
    [EMPLOYEENAME] => John Doe
    [TOTAL_HOURS] => 20
    [STATUS] => 2
    [WEEK_ID] => 3
)
Array
(
    [EMPLOYEEID] => 111
    [EMPLOYEENAME] => John Doe
    [TOTAL_HOURS] => 40
    [STATUS] => 2
    [WEEK_ID] => 4
)

谷歌饼图代码:

<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Work', 'Hours per Day'],
      ['Week 1',     25],
      ['Week 2',      25],
      ['Week 3',  25],
      ['Week 4', 25]
        ]);
        var options = {
          title: 'My Daily Activities'
        };
        var chart = new google.visualization.PieChart(document.getElementById('piechart'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="piechart" style="width: 900px; height: 500px;"></div>
  </body>
</html>

如何以饼图的形式显示提取的数据。如果一个月有5周,它将同样显示饼图切片。除此之外,它还应该以数组形式显示该周的小时数。

饼图看起来很棒。您可以将php变量传递给javascript,并在数组中使用它们。

var week1 = <?php echo json_encode($week1['TOTAL_HOURS']); ?>;
etc..
var data = google.visualization.arrayToDataTable([
      ['Work', 'Hours per Week'],
      ['Week 1',     week1],
      ['Week 2',      week2],
      ['Week 3',  week3],
      ['Week 4', week4]
    ]);

将这些变量放在一个数组中,并首先检查一个月中有多少周会更干净。您可以通过从oracle数据库中获取每日员工详细信息(如果存在)来对每日工作时间执行同样的操作。

阅读更多关于将变量传递到javascript:的信息

如何将变量和数据从PHP传递到JavaScript?