使用PHP从mysql数据库中获取值,创建折线图


creating line chart by taking values from mysql DB with PHP

我试图使用php填充mysql数据到折线图。我的数据是在mysql数据库中的以下风格。

amt
---
700
250
180
190
720

为了将这些值传递给折线图,我需要以下格式的数据。

[700,250,180,190,720]

当我尝试使用下面的代码时,我得到下面的输出。

["720"]

这是我的代码。

<?php
$sql= "SELECT sum(wlt_txn_amount)as amt FROM wallet_txns where wlt_holder_id = '1' and wlt_txn_del_flg = 'N' and  wlt_txn_cat <> 'Transfer' and wlt_txn_type = 'Expense' and wlt_txn_date between DATE (DATE_SUB(LAST_DAY(DATE_ADD(NOW(), INTERVAL 0 MONTH)),INTERVAL DAY(LAST_DAY(DATE_ADD(NOW(), INTERVAL 0 MONTH)))-1 DAY)) and date(CURDATE()) group by wlt_txn_cat ORDER BY wlt_txn_amount desc"; 
$result = mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die(((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));
if ( mysqli_num_rows($result) >0) 
while($row = mysqli_fetch_array($result)){  
$a = $row['amt'];  
$c = array($a);
}
echo json_encode ($c);
 ?>

这是我第一次尝试创建一个图表,如果在我使用的代码有任何大的错误,对不起。提前感谢您的建议和支持。

您的困惑是可以理解的,如果您查看向$c分配值的行,您会看到它不断被设置为当前行的金额值,并丢弃先前存储的答案。解决这个问题最简单的方法是首先声明$c是一个数组,然后像这样赋值:

<? php
$sql = "SELECT sum(wlt_txn_amount)as amt FROM wallet_txns where wlt_holder_id = '1' and wlt_txn_del_flg = 'N' and  wlt_txn_cat <> 'Transfer' and wlt_txn_type = 'Expense' and wlt_txn_date between DATE (DATE_SUB(LAST_DAY(DATE_ADD(NOW(), INTERVAL 0 MONTH)),INTERVAL DAY(LAST_DAY(DATE_ADD(NOW(), INTERVAL 0 MONTH)))-1 DAY)) and date(CURDATE()) group by wlt_txn_cat ORDER BY wlt_txn_amount desc";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die(((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));
$c = array();
if (mysqli_num_rows($result) > 0)
  while ($row = mysqli_fetch_array($result)) {
    $a = $row['amt'];
    // $c[] is shorthand for adding a variable to the end of the $c array
    $c[] = $a;
  }
echo json_encode($c); ?>