2

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

___________________________________________________________________
|       |           |      |               |            |          |
| 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 硬编码一个图表。但我想要的是每个用户必须有一个网络图表。因此,我希望根据数据库中的数据,将多个图表彼此相邻,而不是一个包含所有用户的网络图表。

所以代替这个:

http://jsfiddle.net/CWSb6/

包含所有用户的单个图表

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

http://jsfiddle.net/DReMD/

多个图表,每个用户一张

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

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

编辑:

这是我目前拥有的:

<?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)。

4

1 回答 1

0

嗯,我认为你的代码几乎是正确的,但是,你从哪里得到字段等,测试和垃圾?我尝试你的代码,使用 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"] ?>],

这对我有用。

我希望这可以帮助你。

祝你好运。

于 2013-07-20T04:11:08.550 回答