我正在尝试使用 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); ?>
关于php - 通过使用 PHP 从 mysql DB 获取值来创建折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932838/