首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为列图(列和行未知)创建动态数据表

为列图(列和行未知)创建动态数据表
EN

Stack Overflow用户
提问于 2014-08-04 15:57:37
回答 1查看 508关注 0票数 0

我正在寻找一个循环,它用未知数量的列和行从MySQL结果集中检索数据,并将其放入GViz格式。使用下面的代码,我可以动态地读取数据,但我无法将其转换为所希望的格式:

代码语言:javascript
复制
$cols = array();
$row = array();
$i = 0;
while ($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
    if (!$meta) {
    echo "No information available<br />\n";
    }

    $cols[]= "{id: '".$i."', label: '".$meta->name."', type: '".$meta->type."'}";
    $i++;
    }

while($r = mysql_fetch_assoc($result)) {
$row[]= $r;
}

$jsonTable = json_encode($cols);
$jsonTable2 = json_encode($row);
$Table3 = "{cols: {$jsonTable}, rows: $jsonTable2}";

echo $jsonTable;
     echo '<br>';

echo $jsonTable2;
     echo '<br>';

echo $Table3;
     echo '<br>';

在调试模式下,我从浏览器获得的JS错误是:

错误:对于"0“列,无效类型{id= '0‘、label= 'mon’、type= 'string'}。

我看过googles文档上的数据参数,但是它们的数据像往常一样是硬编码的。这是如此-page不动态生成cols和行。

我很高兴在正确的数据参数方面提供任何帮助。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-05 13:02:27

您看到的错误的原因是您的JSON字符串构造是错误的。不要试图自己构建数组,用PHP构建数组要容易得多,并允许json_encode函数为您处理困难的部分。

您可以将来自MySQL的数据解析为如下所示的DataTable:

代码语言:javascript
复制
$data = array(
    'cols' => array(),
    'rows' => array()
);
for ($i = 0; $i < mysql_num_fields($result), $i++) {
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    $data['cols'][] = array(
        'type' => ($i == 0) ? 'string' : 'number',
        'label' => $meta->name,
        'id' => $i
    );
}
while($r = mysql_fetch_assoc($result)) {
    $temp = array();
    foreach ($data['cols'] as $col) {
        $temp[] = array('v' => $r[$col['label']]);
    }
    $data['rows'][] = array('c' => $temp);
}
echo json_encode($data, JSON_NUMERIC_CHECK);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25122801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档