2013-11-27 21 views
-1

我已經完成了一些像這樣的示例,其中我從數據庫讀取數據,然後將其編碼爲JSON,以便可以使用它在谷歌charts.I知道,PDO總是返回一個字符串,直到現在我已經能夠將它作爲一個int工作正常,但現在我有一個列是一個浮動,我似乎無法得到它的工作。已經嘗試了float_val和其他一些東西,但沒有運氣。我試圖浮動的值有列名稱Load_times幷包含值如0.11,0.966,0.1087等任何人都可以幫忙嗎?試圖從MySQL數據庫讀取浮點值並將其編碼爲JSON以與Google圖表一起使用

感謝

這裏是已使用

$st = $db->prepare ("SELECT Chart_Type, SUM(Load_Time) from Timing group by Chart_Type; 
       "); 

    $st->execute(); 

    $rows = array(); 
    $flag = true; 
    $table = array(); 
    $table ['cols'] = array (

      // Labels for chart, these represent the column titles 
      array (
        'label' => 'Chart_Type', 
        'type' => 'string' 
      ), 
      array (
        'label' => 'Load_Time', 
        'type' => 'number' 
      ) 
    ) 
    ; 

    $rows = array(); 
    while ($r = $st->fetch (PDO::FETCH_ASSOC)) { 

     $temp = array(); 

     $temp [] = array (
       'v' => (string) $r ['Chart_Type'] 
     ); 

     // Values of each slice 

     $temp [] = array (
       'v' => (float) $r ['Load_Time'] 

      ); 

     $rows [] = array (
       'c' => $temp 
     ); 
    } 

    $table ['rows'] = $rows; 
    $jsonTable = json_encode ($table); 
    return $jsonTable; 
} 

時打印的值舉行$ jsontable顯示的代碼, 「V」:0。

+0

爲什麼不把你的問題縮小到僅僅將一個特定的值賦給一個浮點數?爲什麼添加PDO和JSON,但顯示的不是你想要投射的價值? –

+0

我知道如何將一個值賦予一個浮點數,但無法讓它工作。將現在編輯帖子 – cstu

+0

你能否提供一個轉換爲0的示例字符串?通常情況下,當字符串以非數字字符開頭時會發生這種情況。另外,您可以通過將'JSON_NUMERIC_CHECK'傳遞給'json_encode'調用來避免顯式類型轉換:'$ jsonTable = json_encode($ table,JSON_NUMERIC_CHECK);'。 – asgallant

回答

0

要將字符串轉換爲浮點數,您可以使用任何轉換運算符。

數採取直接從你的例子:

$str = '0.1087'; 
$float = (float)$str; 
var_dump($float); 
//float(0.1087) 
+0

我有嘗試類似的東西,但它仍然返回0的 – cstu

+0

這裏是我用過的代碼。它打印出該值現在是一個雙重的,但所有的值爲零\t \t \t //每個切片的值 \t \t \t $ converted =(float)$ t ['Load_Time']; \t \t \t $ type = gettype($ converted); \t \t \t print_r($ converted); \t \t \t print_r($ type); \t \t \t \t \t \t $溫度[] =陣列( \t \t \t \t \t 'V'=>($轉換) \t \t \t \t \t \t \t \t \t); \t \t \t \t \t \t $行[] =陣列( \t \t \t \t \t 'C'=> $溫度 \t \t \t); \t \t \t \t \t} \t \t \t $ \t表[ '行'] = $行; – cstu

+0

我試着cntrl + k我的代碼在評論中,但它沒有做任何事,對格式 – cstu

0

解決它。在SQL查詢中我有SUM(Load-Times),但是當對數組中的值進行排序時,我只有Load_Times。當我重命名這個浮點值工作。

相關問題