2013-10-16 29 views
1

我有一個查詢:JSON格式不同

$result = mysql_query("SELECT 
    Left(Right(Base.inputs.Data_inf,4),3) As 'Datas', 
    count(Base.Data.Data_ID) As `U_Count` 
    FROM 
     Base.Data 
    WHERE 
     Base.Data_inputs.info = 'TREE' 
    GROUP BY "); 

    $rows = array(); 

    while($r = mysql_fetch_array($result)) { 
     $row[0] = $r[0]; 
     $row[1] = $r[1]; 
     array_push($rows,$row); 
    } 

    print json_encode($rows, JSON_NUMERIC_CHECK); 

,其結果是:

[["Data1",38],["Data2",13]] 

我想數據看起來更像:

[{"name":"Data1","data":[38]},{"name":"Data2","data":[13]}] 

我試圖使用像這樣的東西:

$rows = array(); 
    while($r = mysql_fetch_array($sth)) { 
     $rows['name'] = $r['Datas']; 
     while($r = mysql_fetch_array($sth)) { 
     $rows['data'][] = $r['U_Count']; 
    } 
} 

但它不起作用。

任何人都可以幫忙嗎? THNKS

+0

如果第二個值始終是單個數據,爲什麼要將其存儲爲數組? –

+0

也許我不需要,我是一個在mysql/php中的菜鳥。但是我需要這種格式的輸出,所以我可以在列圖中顯示它。無論如何thnks :) –

回答

1

您可以遍歷數據,並存儲爲一個數組。

$rows = array(); 
while($r = mysql_fetch_array($sth)) { 
    $rows[] = array('name'=>$r['Datas'],'data'=>array($r['U_Count'])); 
} 
+0

真棒,它的工作,thnks很多,現在我不得不通過代碼,我可以理解它:) thnks很多! –

0

使用mysql_fetch_object()而不是mysql_fetch_array()

while($r = mysql_fetch_object($result)) { 
    ...