我在MySQL数据库中有一个表,我试图创建该表以灵活的信息可以存储。这个想法是将许多测试信息放入该表中,然后我可以查询表并输出PHP,以对数据进行分析。
表模式如下;idraw_data(自动增量(entry_date(DateTime(传感器(int(test_id(int(test_value(double(
我还使用另外两个表,它们链接到sensorid和test_id。一个列出了有关特定传感器的位置和信息(例如,将其分配给谁(,另一个表包含测试信息,例如测试,单位,上限和下限等等。
因此,我有一个Join语句工作,可以使我以日期,桌子,测试名称和值的形式获取数据,该数据由Mon -Fri(上午9点至下午5点(进行,这是下面的查询;
SELECT raw_data.entry_date, SensorID.Desk, tests.testname, raw_data.test_value FROM raw_data INNER JOIN sensorID ON raw_data.sensorID = SensorID.Sensor INNER JOIN tests ON raw_data.test_id = tests.testid WHERE WEEKDAY(raw_data.entry_date) BETWEEN 0 AND 4 AND HOUR(raw_data.entry_date) BETWEEN 9 AND 17;
我可以使用PHP查询并获取数据库输出,然后使用JSON_ENCODE将其放入JSON字符串中,然后将其馈入图形软件包amcharts,但是我在努力的地方就是如何将数据格式化为更可用的数据。
有人能够向我展示如何将MySQL输出格式化以随后能够获得类似的JSON模式,以提供日期&时间,然后动态测量类型和值,
例如。日期,{位置;位置名称,[testa:testaname_value,testbname; testbvalue}}},还是有更好的方法来输出此方法以易于图形?
非常感谢!
在这种情况下我通常要做的是从mySQL中获取原始数据并循环循环,构造了一个新数组,然后可以将其转换为JSON并用于绘制图形。
例如:
$db_data = RAW_DATA_FROM_MYSQL_ARRAY;
$data_for_graph = [];
foreach ($db_data as $item){
$data_for_graph[$item['entry_date']] = [
'location' => $item['location_name'],
'testa' => $item['testaname_value'],
'results' => [
'test_a' => $item['test_a_val'],
'test_b' => $item['test_b_val'],
],
// etc... construct this as you like..
];
}
$data_for_graph_json = json_encode($data_for_graph);
// now do stuff with the graphs
希望这会有所帮助!
update
添加了一个嵌套的数组结构AS-PER OP请求。