我正在尝试使用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);
?>
这是我第一次尝试创建图表,如果我使用的代码中有任何重大错误,对不起。 感谢您的建议和支持。
答案 0 :(得分:1)
您的困惑是可以理解的,如果您查看为$ 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); ?>
&#13;