根据两个时间段之间的数据库值构建图表

时间:2018-12-25 14:21:23

标签: php sql-server canvas input

im试图根据Ms SQL数据库中的值构建图形。这是我的想法,但只显示了一点:

<?php

//----------------------Connect with Server--------------------------
$serverName = "DESKTOP-MLENLVF"; 
$connectionInfo = array( "Database"=>"DataBaseExample", "UID"=>"g.abibekov", "PWD"=>"dprb-725");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
//----------------------End Connecting with Server--------------------------


if(isset($_POST["FirstDateButton"]))
{
    $firstdatetime=htmlspecialchars($_POST['FirstDate']);
    $seconddatetime=htmlspecialchars($_POST['SecondDate']);
    $query=sqlsrv_query($conn, "SELECT * FROM ValueTime WHERE Date between cast('$firstdatetime' as Date) 
    and cast('$seconddatetime' as Date)"); 
    while($row=sqlsrv_fetch_array($query))
    {        
       $dataPoints = array(array("y" => $row['Value'], "label" => $row['Date']));
    }
}
?>

1 个答案:

答案 0 :(得分:2)

通过仅使用$dataPoints = array(array("y" => $row['Value'], "label" => $row['Date']));,您将覆盖$dataPoint中的所有数据,并且仅存储while循环中的最后一个值。

要解决此问题,您可以这样做:

while($row=sqlsrv_fetch_array($query))
{
  $dataPoints[] = array(array("y" => $row['Value'], "label" => $row['Date']));
}

或者这样:

while($row=sqlsrv_fetch_array($query))
{        
   $tmp = array(array("y" => $row['Value'], "label" => $row['Date']));
   array_push($dataPoints, $tmp);
}