2013-03-10 76 views
0

由于我与IE 8,面临的一个问题,它不是渲染使用,我使用下面的代码从数据库中提取我的数据Highcharts问题一些图表删除最后输入逗号的PHP代码

的PHP代码返回下面

series: [{ 
      type: 'pie', 


      data: [ 

      ['FirstRowItem',21],['SecondRowItem',10],['ThirdRowItem',6],    ] 
     }] 

的和DB请求作为以下

series: [{ 
      type: 'pie', 

      data: [ <?php 

while($row = mysql_fetch_array($getitemscount)){ 
echo "['"; 
echo $row['items']; 
echo "',"; 
echo $row['item countt']; 
echo "],";`} 

?> 
      ] 
     }] 

它在IE9,Chrome,Firefox上正常工作。但在IE8上,因为,['ThirdRowItem',6],末尾,它不工作,因为它表示未定义的变量。

我在想如果有一段代码只会删除最后一个逗号(懒惰的方式)或任何其他方式来获取没有它的数据库数据?

预先感谢您。

*********** EDIT ****************

一个更好的方法HERE

回答

3

不要手工串接的,但使用代替json_encode()

$data = array(); 
while($row = mysql_fetch_array($GetCallDriversResultPie)) { 
    $data[] = array($row['CallDriver'], (int)$row['Calls count']); 
} 

echo json_encode($data); 
+0

+1良好的解决方案,如果您的环境是PHP5 +或以其他方式支持JSON库。 – 2013-03-10 21:29:42

+0

谢谢你的回复,但问题是返回的项目现在看起来像[“FirstRowItem”,“21”],[“SecondRowItem”,“10”],[“ThirdRowItem”,“6”]与。但图表不会加载任何值,它必须以这种格式返回['firstitem',21],['seconditem',10],['thirditem',6] – 2013-03-10 21:32:25

+0

@Ahmed ElGamil:我不明白该问题与您当前的问题或我的答案有关。生成的输出是否符合您的预期?如果第二个元素的类型是问题 - 请参阅我的用'(int)'修饰符 – zerkms 2013-03-10 21:33:07

0

一种方法是将数据添加到一个变量,以及处理你的结果从MySQL,使用SUBSTR()设定后修整至所需长度(-1字符,最后逗号)。

series: [{ 
      type: 'pie', 

      data: [ <?php 

$result = ''; 
while($row = mysql_fetch_array($GetCallDriversResultPie))`{ 
    $results .= "['" . $row['CallDriver'] . "'," . $row['Calls count'] . "]," ; 
} 

echo (substr($results, 0, -1)); // echo all of $results, except the last character 

?> 
      ] 
     }] 
+0

谢谢。这也工作正常 – 2013-03-10 22:14:26