在mysql_fetch_array数组上使用urldecode

时间:2013-10-31 01:17:37

标签: php mysql json

我一直在尝试将字段从mysql_fetch_array(urlencoded)转换为urldecode,然后转换为JSON(json_encode)

以下是我正在使用的不起作用:输出仍然是urlencoded

$query = "SELECT * FROM table WHERE tableId=$tableId";
$result = mysql_fetch_array(mysql_query($query));
foreach($result as $value) {
    $value = urldecode($value);
}
$jsonOut = array();
$jsonOut[] = $result;
echo (json_encode($jsonOut));

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

耶....!您没有使用函数返回的值更新$result$value需要通过引用传递。

foreach($result as &$value) {
    $value = urldecode($value);
}

foreach($result as $i => $value) {
    $result[$i] = urldecode($value);
}

当你这样做时......

foreach($result as $value) {
    $value = urldecode($value);
}

foreach的迭代时,函数的结果会丢失。您正在尝试更新$result中存储的每个值,但这种情况并未发生。

  • 另请注意,代码只从查询中提取一行。我不确定这是否符合设计要求。

答案 1 :(得分:0)

尝试:

$query = "SELECT * FROM table WHERE tableId=$tableId";
$result = mysql_query($query);
$value = array();
while($row = mysql_fetch_array($result))
$value[] = urldecode($row);
}
$jsonOut = array();
$jsonOut[] = $result;
echo (json_encode($jsonOut));