0

这是我的情况:

我有一个带有 2 个字段的 MYSQL 数据库:'ID''string'。'string' 字段以序列化数组的形式存储字符串。因此,要将其提取回来,我使用以下 PHP 代码:

$rez=mysql_query("SELECT * FROM drawings") or die(mysql_error());

$array=array();

while($row=mysql_fetch_array($rez))
{
    $array[]=unserialize($row['string']);
}

现在我的 $array 变量应该包含一个数组,对吧?假设我这样做是正确的,那么echo $array;我的 ajax 调用会在 return_data 中捕获它,如下所示:

var return_data = hr.responseText;

只是为了测试我是否可以提取一个值,然后我尝试实现以下代码,但它似乎不起作用:

var arr = return_data.split(",");
var sub_arr = arr[0].split(",");
alert(sub_arr[0]);

我究竟做错了什么?

附加信息:

我基本上在 MYSQL 数据库中存储了一堆坐标,每一行都是一个单独的坐标数组,例如 (12,13,14,16,17,20) - 这些将是一行中包含的 3 个“点”。

然后我使用 ajax 调用以数组的形式从数据库中提取所有记录,其中包含多个数字的数组(我知道每个 2 个相邻的数字组成一个点)。

编辑:

chrome javascript控制台输出:

“未定义”的事件处理程序错误:无法读取未定义类型错误的属性“disable_serps_pos_numbers”:无法读取 BasePlugin.GooglePlugin.getSomeCorePrefs 中未定义的属性“disable_serps_pos_numbers”(chrome-extension://akdgnmcogleenhbclghghlkkdndkjdjc/content_scripts/google.js:129: 48) at chrome-extension://akdgnmcogleenhbclghghlkkdndkjdjc/lib/lib.js:44:25 at miscellaneous_bindings:287:9 at Event.dispatchToListener (event_bindings:356:21) at Event.dispatch_ (event_bindings:342:27) at Event .dispatch (event_bindings:362:17) 在 Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:253:22)

4

3 回答 3

3
while($row=mysql_fetch_array($rez))
{
    $array[]=unserialize($row['string']);
}

echo json_encode($array);

然后在 Javascript 代码中(假设为 jQuery):

$.parseJSON(return_data)

然后你可以像使用 Javascript 中的二维数组一样使用它。

于 2013-08-14T15:36:56.373 回答
1

使用 jQuery 和 PHP 附带的标准函数将数组转换为 JSON 数据并返回数组。

像 PHP 中的 json_encode() 和 json_decode()

和 JS:在 JavaScript 中解析 JSON?

于 2013-08-14T15:33:28.177 回答
0

首先,我强烈建议您切换到使用 PDO 进行 SQL 查询,但要回答您说您正在做的问题:

回声$数组;

这将导致错误的数组到字符串转换。

我建议使用 echo json_encode($array); 这会将数组转换为 json 对象。

http://php.net/manual/en/function.json-encode.php

于 2013-08-14T15:42:40.287 回答