php - 如何使用 PHP 和 MYSQL 自动显示多个图表?

标签 php mysql highcharts

我有以下问题。我想根据数据库中的数据自动显示多个 Highcharts webcharts。假设我们有以下数据库:

___________________________________________________________________
|       |           |      |               |            |          |
| Year  |   Month   |  ID  |  Name User    |   Wins     |  Losses  |
|_______|___________|______|_______________|____________|__________|
| 2013       1         21     Tony Stark        3            12    |    
| 2013       1         52    Bruce Wayne        5            4     |
| 2013       1         76     Clark Kent        9            5     |
|__________________________________________________________________|

(此数据库为示例,真实数据库中的行数较多。)

我有以下查询:

SELECT
            a.year AS year1,
            a.month AS month1,
            a.id AS id,
            a.name AS nameuser,
            a.wins AS wins,
            a.losses AS losses
            FROM Sales a
        WHERE
        a.month = 1 AND
        a.year = YEAR(NOW())

有了这个,用 Highcharts 硬编码图表就很容易了。但我想要的是每个用户必须有一个 webchart。因此,我想要基于数据库中的数据并排放置的多个图表,而不是一个包含所有用户的网络图表。

所以不是这个:

http://jsfiddle.net/CWSb6/

Single chart with all users

我想要这个(但然后彼此相邻):

http://jsfiddle.net/DReMD/

Multiple charts, one per user

必须用php和mysql自动生成。因此,如果本月开始有新用户,并且新用户已保存在数据库中,则页面会自动显示新用户以及相关的网络图表。

我发现这很难完成,我需要一些帮助才能找到解决方案的正确方向。

编辑:

这是我目前拥有的:

<?php
$sql    = "SELECT
            a.year AS year1,
            a.month AS month1,
            a.id AS id,
            a.name AS nameuser,
            a.wins AS wins,
            a.losses AS losses
            FROM Sales a
        WHERE
        a.month = 1 AND
        a.year = YEAR(NOW())"; 
        $result = $adb->pquery($sql, array());
         while ($row = $adb->fetch_array($result)) {


             ?>                 
<script> 
$(function () {

$("#webchart<? echo $row["id"] ?>").highcharts({

    chart: {
        polar: true,
        type: "line"
    },

    title: {
        text: "",
        x: -80
    },
     legend: {
        enabled: false

        },
        exporting: {
        enabled: false
        },
        credits: {
        enabled: false
        },
    pane: {
        size: "80%"
    },

    xAxis: {
        categories: ["wins", "losses", "etc", "test", 
                "junk"],
        tickmarkPlacement: "on",
        lineWidth: 0
    },

    yAxis: {
        gridLineInterpolation: "polygon",
        lineWidth: 0,
        min: 0
    },

    legend: {
        verticalAlign: "bottom",
        y: 100,
        layout: "vertical"
    },

    series: [{
        name: "test",
        data: [ <? echo $row["wins"] . ", " . $row["losses"] . ", " . $row["etc"] . ", " . $row["test"] . ", " .$row["junk"] ?>],
        pointPlacement: "on"
    }]
});
});
</script> 
<div id="webchart<? echo $row["id"] ?>" style="min-width: 300px; height: 300px; margin:0 auto;"></div>
<?} ?>

问题是这个循环什么都不返回。 (是的,我已经放置了具有正确 ID 的 div)。

最佳答案

嗯,我认为你的代码几乎是正确的,但是,从你得到字段的地方 等等,测试和垃圾?我尝试使用您的代码,使用 mysqli,我想您使用的是相同的,但您的查询永远不会返回此数据。如果你改变

data: [ <?php echo $row["wins"] . ", " . $row["losses"] . ", " . $row["etc"] . ", " .     $row["test"] . ", " .$row["junk"] ?>],

对于:

data: [ <?php echo $row["wins"] . ", " . $row["losses"] . ", " . $row["losses"] . ", " . $row["losses"] . ", " .$row["losses"] ?>],

这对我有用。

希望对你有帮助。

祝你好运。

关于php - 如何使用 PHP 和 MYSQL 自动显示多个图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293635/

相关文章:

php - 用 Regex 或 DOM 替换所有包含给定 href 属性的 <link> 标签

php - 如何在 Instagram php api 中转到以前的图像?

php - 正则表达式捕获查询字符串中的变量

php - 在 mysql 中存储文件(照片和视频)的最佳方式是什么?

javascript - highcharts 检查是否选择了饼图部分

PHP 和 MYSQL : Why does A work and B not work?

mysql - Doctrine - 从表中提取列

mysql - 如何转义 "<"?

javascript - Highcharts 日期相差一天

javascript - 轴的颜色与系列线的颜色相同