我有以下问题。我想根据数据库中的数据自动显示多个 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 硬编码一个图表。但我想要的是每个用户必须有一个网络图表。因此,我希望根据数据库中的数据,将多个图表彼此相邻,而不是一个包含所有用户的网络图表。
所以代替这个:
我想要这个(但然后彼此相邻):
它必须使用 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)。