【发布时间】:2013-12-26 07:22:59
【问题描述】:
我在获取正确格式的 json 字符串时遇到了一些麻烦。
我有一个看起来像这样的数据库表:
Table Columns: emp month sales
Table rows: Bob 1 100
Bob 2 150
Jane 1 125
Jane 2 130
Mary 1 110
Mary 2 130
在 drawChart() 中,我可以静态地创建这样的东西:
var data = google.visualization.arrayToDataTable([
['Month', 'Bob', 'Jane', 'Mary],
['Jan', 100, 125, 110],
['Feb', 150, 130, 130]
]);
最后,json字符串需要是这样的:
{"cols":[{"label":"Month","type":"string"},
{"label":"Bob","type":"number"},
{"label":"Jane","type":"number"},
{"label":"Mary","type":"number"}],
"rows":[{"c":[{"v":100},{"v":125},{"v":110}]},
{"c":[{"v":150},{"v":130},{"v":130}]}]}
但我无法从表格中提取与上述等效的正确 json 格式。我正在按照这里的步骤...PHP MySQL Google Chart JSON - Complete Example
但该示例仅适用于单个数据集。如果您要添加数周而不是只有一个数据集,如何运行查询?
【问题讨论】:
-
您能否详细说明您需要了解的示例中缺少的内容? “如果您要添加多个星期而不是只有一个数据集”是什么意思?查看您的示例数据库表和您构建 JSON 的方式(顺便说一下,这是格式错误的),这两种布局完全不同(如果您真的想重新组织数据结构,则需要在查询中进行一些调整)。图表的最终目标是什么?
-
示例中没有“遗漏”;相反,我想扩展这个例子——而不是只有一周的数据,如果你有超过 2 周的数据呢?换句话说,添加第 3 列(称之为“周” - 表示执行工作的周)。然后在第 1 周再次添加 4 行;然后为第 2 周添加另外 4 行,依此类推。只有一周数据的查询按原样工作,但是一旦添加第 3 列和多周数据,查询就不那么直接了。最终目标是我需要最终与我调用 arrayToDataTable() 中的静态示例相同。
-
在格式错误的 json 字符串上:是的,这并非不可能,因为我剥离了实际字符串以使其尽可能简单,并且可能在编辑时弄乱了字符串
-
--“需要在查询中进行一些修改......” - 是的,正是我遇到的问题是让查询输出格式正确的数据。
-
另注:我修复了上面的json字符串:上面的json字符串是最终目标
标签: php mysql json google-visualization