2013-10-31 44 views
0

我一直在試圖轉換從mysql_fetch_array領域(這些url編碼)轉換成JSON之前urldecode(json_encode)上mysql_fetch_array陣列

這裏使用urldecode就是我與工作不工作:輸出仍然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)); 

任何想法?

回答

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中的每個值,但這並未發生。

  • 另請注意,代碼僅從您的查詢中提取一行。我不確定這是否是由設計決定的。
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));