返回JSON从MySQL数据库PHP

返回JSON从MySQL数据库PHP

问题描述:

我在我的数据库中的以下数据:返回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

尝试:

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

提取的输出是值对的关键。关键是行号。

此外,您的列名似乎是您发布的变量转储的大写。

试试这个正确读取值:

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