2016-09-13 23 views
-2

我有这样的表,表1:结果值 - MySQL的

+----+-------+----------+ 
| 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

该输出的逻辑是什么? – jophab

+0

_如何返回这种形式的值?_这个_form_背后的规则是什么? –

+0

我需要此表格作为图表行http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-basic/ – ster

回答

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"; 
} 
+0

解析错误:语法错误,意外的')'解析错误:语法错误,意外的')'对于C:\ xampp \ htdocs \ – ster

+0

:$($ i,“。(isset($ store [$ i])?$ store [$ i]):0)。 C:\ xampp \ htdocs \ – ster

+1

@ster'$ finalArray。=“[$ i,”。“]”;“Parse error:syntax error,unexpected')' (isset($ store [$ i])?$ store [$ i]: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) . ']'; 
+0

。在C:\ xampp \ htdocs \ – ster

+0

中进行了一些编辑 – verhie