从使用MySQL _FETCH设置的字符串中删除双引号的最佳方法是什么?

时间:2011-04-13 09:30:38

标签: mysql ajax json double quotes

我有一个php脚本,用于在ajax调用之后从MysQL数据库中检索数据。需要将数据作为字符串返回到调用网页,该字符串表示要在散点图上显示的一系列x,y值。

php脚本需要输出到调用页面的所需格式(将从xmlhttp.responseText中选取)如下:

  

[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7]

我得到的是:

  

[[0, “69.08”],[1, “53.53”],[2, “61.61”],[3, “72.04”],[4, “82.72”],[5, “103.76” ]

我用来构建返回字符串的PHP代码是:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 

  $index[$i] = $i;
  $PointArray[0] = $i;
  $PointArray[1] = $row[1];
  $ReturnData[$i] = $PointArray;
  $i = $i + 1;
}

echo json_encode($ReturnData);

有趣的是,当我将数据回显到调用页面上显示的html表而不是将其设置为php数组时,不会出现双引号。

我的问题有两个:

(1)有没有比我提出的更优雅的数据串建立方式,看起来有点笨拙?

(2)删除双引号的最佳方法是什么?这应该是服务器端还是在启动呼叫的网页上的javascript函数中完成的?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果你不想出现引号 - 只是不要在数组中放一个字符串; - )

将代码替换为类似的内容(我在(float)之前添加了$row[1]修饰符):

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 

  $index[$i] = $i;
  $PointArray[0] = $i;
  $PointArray[1] = (float)$row[1];
  $ReturnData[$i] = $PointArray;
  $i = $i + 1;
}

或者更紧凑:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 
  $index[$i] = $i; // what is it used for?
  $ReturnData[$i] = array($i, (float)$row[1]);
  $i++;
}