0

JSON(json_encode)に変換する前に、フィールドをmysql_fetch_array(urlencoded)からurldecodeに変換しようとしています

これが私が取り組んでいるもので、うまくいきません: The output is still 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));

何か案は?

4

2 に答える 2

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 行のみをフェッチすることに注意してください。それが設計によるものかどうかはわかりません。
于 2013-10-31T01:20:27.987 に答える
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));
于 2013-10-31T01:22:15.093 に答える