【发布时间】:2025-12-09 01:40:01
【问题描述】:
我正在尝试从mysql 获取记录并通过amchart 呈现数据,但我在这样做时遇到了困难。我编写了以下代码,但它不起作用。查询工作正常,但问题是用查询结果替换静态(占位符)数据。请提出建议。
{
$selectdata="SELECT member_lhp, COUNT( * ) AS 'land_pattern' FROM hh_basic_info GROUP BY member_lhp";
$resdata=mysql_query($selectdata);
<script type="text/javascript">
var chart;
var chartData = [
<?php
$count=0;
while($rowdata = mysql_fetch_assoc($resdata))
foreach($rowdata as $rows){
$type= $rows['member_lhp'];
$lp=$rows['land_pattern'];
if($count++ > 0) echo ',';
?>
{
year: <?php echo $type;?>,
income: <?php echo $lp;?>
},
<?php } ?>
];
AmCharts.ready(function () {
// SERIAL CHART
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData;
chart.categoryField = "year";
// this single line makes the chart a bar chart,
// try to set it to false - your bars will turn to columns
chart.rotate = true;
// the following two lines makes chart 3D
chart.depth3D = 20;
chart.angle = 30;
// AXES
// Category
var categoryAxis = chart.categoryAxis;
categoryAxis.gridPosition = "start";
categoryAxis.axisColor = "#DADADA";
categoryAxis.fillAlpha = 1;
categoryAxis.gridAlpha = 0;
categoryAxis.fillColor = "#FAFAFA";
// value
var valueAxis = new AmCharts.ValueAxis();
valueAxis.axisColor = "#DADADA";
valueAxis.title = "Villagers - Land holding pattern";
valueAxis.gridAlpha = 0.1;
chart.addValueAxis(valueAxis);
// GRAPH
var graph = new AmCharts.AmGraph();
graph.title = "Income";
graph.valueField = "income";
graph.type = "column";
graph.balloonText = "Land holding number in [[category]]:[[value]]";
graph.lineAlpha = 0;
graph.fillColors = "#bf1c25";
graph.fillAlphas = 1;
chart.addGraph(graph);
// WRITE
chart.write("chartdiv");
});
</script>
}
【问题讨论】:
-
真正的问题是什么? “动态数据与静态数据的排列”一点都不清楚。会发生什么,您希望发生什么?
-
我想用从数据库中获取的动态数据替换静态数据。静态数据:{ var chartData = [{ year: 'Landless', income: 16 }, { year: 'Marginal (upto 2.5 acre)', income: 7 }, { year: 'Small (2.5 5 acre)',收入:6 },{ 年:'中型(5 - 12.5 英亩)',收入:0 },{ 年:'大(12.5 英亩 - 更多)',收入:0 }]; }
-
看起来您已经在动态执行此操作,需要将年份的值放在引号内
year: '<?php echo $type;?>',