通过使用PHP

时间:2015-08-11 03:44:36

标签: php mysql arrays

我正在尝试使用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);
 ?>

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

1 个答案:

答案 0 :(得分:1)

您的困惑是可以理解的,如果您查看为$ c指定值的行,您会看到它始终被设置为当前行中的金额值并丢弃先前存储的答案。解决这个问题的最简单方法是首先说$ c是一个数组然后分配如下的值:

&#13;
&#13;
<? 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;
&#13;
&#13;