我有这个表,table1:
+----+-------+----------+
| ID | MONTH | QUANTITY |
+----+-------------+----+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 7 | 3 |
| 4 | 4 | 1 |
| 5 | 2 | 3 |
| 6 | 12 | 8 |
| 7 | 1 | 6 |
+----+-------+----------+
My file php is:
<?php
include 'bd_cnx.php';
$ret =[];
$sql = "SELECT
FROM
";
$result = $conn->query($sql);
if ($result->num_rows > 0){
while($row = $result->fetch_assoc()){
//floatval() transforma sirul numeric in numar
$ret[] =[$row['MONTH'], floatval($row['QUANTITY'])];
}
}
else {
echo "result 0";
}
?>
如何返回此表单中的值? [[1,7],[2,5],[3,0],[4,1],[5,0],[6,0],[7,3],[8,0],[ 9,0],[10,0],[11,0],[12,8]]
谢谢!
答案 0 :(得分:1)
您可以创建数据库结果的临时数组,然后在(固定的)月份(1-12)上进行循环
$tmp = array();
while($row = $result->fetch_assoc()){
$tmp[$row['MONTH']] = $row['QUANTITY'];
}
$retTmp = array();
for($i=1;$i<=12;$i++){
$retTmp[] = "[$i," .(isset($tmp[$i]) ? $tmp[$i] : 0) . "]";
}
$ret = '[' . implode(',', $retTmp) . ']';
答案 1 :(得分:1)
使用以下代码。
$finalArray = $store = [];
$sql = "SELECT MONTH,SUM(QUANTITY) FROM `stack` GROUP BY MONTH";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
//floatval() transforma sirul numeric in numar
$store[$row['MONTH']] = $row['QUANTITY'];
}
$finalArray = '[';
for ($i = 1; $i <= 12; $i++) {
$finalArray .= "[$i," . (isset($store[$i]) ? $store[$i] : 0) . "]";
if ($i != 12) {
$finalArray .= ",";
}
}
$finalArray .= ']';
} else {
echo "result 0";
}