2016-10-02 200 views
0

我在我的數據庫中的以下數據:返回JSON從MySQL數據庫PHP

data

我想在下面的JSON格式的日期:

{ 
    "labels": ["12.11.2016", "13.11.2016", "14.11.2016", ...], 
    "temperature": ["12", "35", "27", ...], 
    "humidity": ["56", "70", "87", ...] 
} 

我當前的代碼是:

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
     // set the PDO error mode to exception 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $conn->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); 

     //Select the requested data 
     $sql = "SELECT date, temperature, humidity FROM `TestData` ORDER BY date ASC "; 

     $statement = $conn->prepare($sql); 
     $statement->execute(); 
     $result = $statement->fetchAll(PDO::FETCH_ASSOC); 

     //Values returned for JavaScript 
     $labels = array(); 
     $temperature = array(); 
     $humidity = array(); 
     $data = array(); 

     foreach ($result as $row) 
     { 
      array_push($labels, $row['date']); 
      array_push($temperature, $row['temperature']); 
      array_push($humidity, $row['humidity']); 
     } 
     $result = null; 

     //Load data in one single array 
     $data['labels'] = $labels; 
     $data['temperature'] = $temperature; 
     $data['humidity'] = $humidity; 
     //echo $data; 
     //echo json_encode($labels , JSON_FORCE_OBJECT); 
     echo json_encode($data); 

但這隻給我以下sh * t: shit

有沒有人有想法嗎?即使我已經在網上搜索了5個小時,我也無法正常工作:/

+1

$ result的輸出是什麼? 'var_dump($ result)' – Monokh

+0

輸出是[here](https://abload.de/img/dataresult5yajf.png) – FranzHuber23

回答

2

嘗試:

array_push($labels, $row['DATE']); 
array_push($temperature, $row['TEMPERATURE']); 
array_push($humidity, $row['HUMIDITY']); 

看起來像你的列名大寫因爲$conn->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);

+0

哈哈,跆拳道...這對我有用:D好的,謝謝@Shawn。結果現在是正確的格式:) – FranzHuber23

+0

背後的問題究竟是什麼?你能解釋一下嗎?我不認爲,我對我的列使用了大寫字母描述...:/ – FranzHuber23

+1

實際上它是這一行:'$ conn-> setAttribute(PDO :: ATTR_CASE,PDO :: CASE_UPPER);' – Shawn

1

提取的輸出是值對的關鍵。關鍵是行號。

此外,您的列名似乎是您發佈的變量轉儲的大寫。

試試這個正確讀取值:

foreach ($result as $key => $row) 
{ 
    array_push($labels, $row['DATE']); 
    array_push($temperature, $row['TEMPERATURE']); 
    array_push($humidity, $row['HUMIDITY']); 
} 
+0

不,仍然給我那些空值... [link](https:// abload。 de/img/dataresultsqq0n.png) – FranzHuber23

+0

'foreach($ result as $ key => $ row)'或'foreach($ result as $ key)'在這種情況下無關緊要。 – Shawn

+0

是的,這就是我意識到的,它真的是與大寫字母 – FranzHuber23