【发布时间】:2014-06-02 08:43:54
【问题描述】:
我有一个 javascript 函数(我从 highcharts 示例中获取),如下所示:
$(function () {
(...)
series: [{
name: 'Things',
colorByPoint: true,
data: [{
name: 'Alabama',
y: 1010,
drilldown: 'Alabama counties'
}, {
name: 'Alaska',
y: 77,
drilldown: 'Alaska counties'
}, {
name: 'Arizona',
y: 947,
drilldown: 'Arizona counties'
}]
这仅接受阿拉巴马州、阿拉斯加州和亚利桑那州(我正在尝试绘制每个州的死亡人数图)。
我已经成功地将我的 postgres 数据库连接到一个 php 脚本,并且我有两个数组:
$state_name and $fatalities
我想做某种 lop(for 或 foreach),可以获取状态名称和死亡人数以自动生成更多状态,在系列中......否则我必须一个一个地完成!
我尝试了很多不同的方法,但我的代码是一团糟,我可以知道 php 在哪里结束,而 javaScript 从哪里开始......你能给我一些帮助吗?
所以,我尝试只生成 name 和 y,目前这就是我的想法......
<?php
// Connection parameters
$host = "localhost";
$user = "postgres";
$pass = "iniciativa2";
$db = "crash15042014";
// Connecting...
$con = pg_connect("host=$host dbname=$db user=$user password=$pass")
or die ("Could not connect to server\n");
$query = "select state_id, state_name, sum(noofcrashes) as total
from locationdim locdim, eventfacts ev
where locdim.location_id = ev.location_id
group by locdim.state_id, locdim.state_name
order by locdim.state_id;
";
$rs = pg_query($con, $query) or die("Cannot execute query: $query\n");
$state_name = array();
$deaths = array();
while ($row = pg_fetch_assoc($rs)) {
array_push($state_name, $row['state_name']);
array_push($deaths, $row['total']);
}
print_r($state_name);
echo "<br>";
print_r($deaths);
//This is fine
pg_close($con);
// From here, I have no clue...
for ($i = 0; $i <= 56; $i++) { ?>
name: <?php "'". echo $state_name[$i] . "'"; ?>,
y: <?php echo $deaths[$i]; ?>,
drilldown: <?php "'". echo $state_name[$i] . "counties'"; ?>
<?php } ?>
【问题讨论】:
-
你试过使用json_encode / json_decode吗?
-
代码乱码能不能分享一下
-
我已经编辑给你看...我还尝试在 foreach 循环中使用 $array = array('name:'=>$state_name[$i], 'y:' =>$deaths[$i] 然后 json_encode($array) 但我不太确定我在做什么......这对我来说是新的......
-
即使乱码也可以分享。否则,只需考虑使用 json_encode() 和 json_decode() 函数,它们会让你的生活更轻松
-
您可以拥有一个数组并在查询循环中向其添加值,如下所示: $state_name = $row['state_name']; $result_array["$state_name"]['state'] = $state_name; $result_array["$state_name"]['deaths'][] = $row['deaths'];那么至少你有一个状态 => 死亡总数对的数组。
标签: javascript php for-loop highcharts