次の問題があります。データベースからのデータに基づいて、複数の 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 チャートではなく、データベースのデータに基づいて複数のチャートを並べて表示する必要があります。
したがって、これの代わりに:
私はこれが欲しいです(しかし、互いに隣り合っています):
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を配置しました)。