使用PHP和MySQL构建Google图表

使用PHP和MySQL构建Google图表,php,mysql,json,google-visualization,Php,Mysql,Json,Google Visualization,我对PHP和MySQL查询相当陌生。我正试图从MySQL数据库中构建一个谷歌图表,但在谷歌上搜索了无数个小时后,我找不到我需要的东西。然而,我发现了一个可能有用的例子,但我仍然不能按照我想要的方式来做。这是我桌子的一个例子 Apple | Orange | Strawberry -------------------------- Like | Like | Like Dislike | Like | Like Dislike |

我对PHP和MySQL查询相当陌生。我正试图从MySQL数据库中构建一个谷歌图表,但在谷歌上搜索了无数个小时后,我找不到我需要的东西。然而,我发现了一个可能有用的例子,但我仍然不能按照我想要的方式来做。这是我桌子的一个例子

    Apple   | Orange  | Strawberry
    --------------------------
    Like    | Like    | Like
    Dislike | Like    | Like
    Dislike | Dislike | Like
    Like    | Dislike | Dislike
    Like    | Like    | Like
我想数一数有多少人喜欢苹果、橘子和草莓。在图表中,我想让它显示有多少人喜欢和不喜欢这3种水果

这是我一直在看的代码,我已经想出了如何攻击它

    $query = mysql_query('SELECT * FROM data');

    $table = array();
    $table['cols'] = array(
        array('label' => 'cas', 'type' => 'string'),
        array('label' => 'data', 'type' => 'number')
    );

    $rows = array();
    while($r = mysql_fetch_assoc($query)) {
        $temp = array();
        $temp[] = array('v' => $r['cas']);
        $temp[] = array('v' => (int) $r['data']);

    $rows[] = array('c' => $temp);
    }

    $table['rows'] = $rows;

    $jsonTable = json_encode($table);

    echo $jsonTable;
任何例子都会有帮助!多谢各位

“这是我一直在看的代码,我已经知道如何 攻击它。”

好的,这里是如何调试它,假设这些是你正在采取的步骤

  • 从数据库获取数据
  • 创建一个数组
  • Json编码数组
  • 将Json发送到图表
  • 尝试在上面的步骤
    2.
    处硬编码一个数组,暂时从等式中删除步骤
    1

    现在,从这一步开始,代码的其余部分应该如何?你能看到期望使用硬编码值的图表吗

    如果是,我们现在可以反向工作,
    var\u dump()
    ing数据,直到它与您以前使用的硬编码值匹配。

    请将此作为您的PHP尝试:

    $query = mysql_query("
        SELECT
            'Like' as 'preference',
            SUM(IF(Apple = 'Like', 1, 0)) as Apple,
            SUM(IF(Orange = 'Like', 1, 0)) as Orange,
            SUM(IF(Strawberry = 'Like', 1, 0)) as Strawberry
        FROM data
        UNION
        SELECT
            'Dislike' as 'preference',
            SUM(IF(Apple = 'Dislike', 1, 0)) as Apple,
            SUM(IF(Orange = 'Dislike', 1, 0)) as Orange,
            SUM(IF(Strawberry = 'Dislike', 1, 0)) as Strawberry
        FROM data
    ");
    
    $table = array();
    $table['cols'] = array(
        array('label' => 'preference', 'type' => 'string'),
        array('label' => 'Apple', 'type' => 'number'),
        array('label' => 'Orange', 'type' => 'number'),
        array('label' => 'Strawberry', 'type' => 'number')
    );
    
    $rows = array();
    while($r = mysql_fetch_assoc($query)) {
        $temp = array();
        $temp[] = array('v' => $r['preference']);
        $temp[] = array('v' => (int) $r['Apple']);
        $temp[] = array('v' => (int) $r['Orange']);
        $temp[] = array('v' => (int) $r['Strawberry']);
    
        $rows[] = array('c' => $temp);
    }
    
    $table['rows'] = $rows;
    
    $jsonTable = json_encode($table);
    
    echo $jsonTable;
    

    SQL应该返回两行数据,一行是喜欢的总和,另一行是不喜欢的总和,然后将其解析为GoogleVisualizationAPI数据表格式,并作为JSON字符串回显。这很适合用作图表的AJAX数据源,但只需稍加修改,就可以将数据直接输出到javascript中以绘制图表。

    此处处理问题的方法可能重复,这取决于您希望最终结果是什么。你是在找像这样的东西,或者像这样的东西,或者别的什么东西吗?阿斯格兰特:第一个肯定会很棒!
    $jsonTable
    的内容是什么?当我使用该JSON字符串构建数据表时,它对我很有用。发布您的javascript,以便我可以测试它。