2

次の問題があります。データベースからのデータに基づいて、複数の 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 がなければならないということです。そのため、すべてのユーザーを含む 1 つの Web チャートではなく、データベースのデータに基づいて複数のチャートを並べて表示する必要があります。

したがって、これの代わりに:

http://jsfiddle.net/CWSb6/

すべてのユーザーを含む単一のグラフ

私はこれが欲しいです(しかし、互いに隣り合っています):

http://jsfiddle.net/DReMD/

複数のグラフ、ユーザーごとに 1 つ

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