2016-07-12 1 views
0
require_once('db.php'); 

$sql = "SELECT * FROM tbl"; 

$rs = mysql_query($sql); 

$rows = array(); 

while($r = mysql_fetch_assoc($rs)) { 
    $rows['Record'][] = $r; 
} 

print json_encode($rows); 

mysql_close($conn); 

//動作しない、上記動作しません//、$ rのかもしれurldecodeが

while($r = mysql_fetch_assoc($rs)) { 

    $r = utf8_decode(urldecode($r)); 

    $rows['Record'][] = $r; 
} 

上記完璧に動作し、私はそれが動作することができますどのようにオブジェクト のですか?

+0

をあなたはJSONからのデータを解析しようとしています。どのようなタイプの回答で構文を表示したいのですか? –

+0

この '$ r = utf8_decode(urldecode($ r));'から何を期待しますか? –

答えて

1

mysql_fetch_assocは配列を返し、urldecodeに渡すと、文字列をパラメータとして待機します。

戻り値$rのすべての列にurldecodeを呼び出す必要があります。

あなたは、例えば、このようにそれを行うことができます。

$r = array_map(function($col){ 
    return utf8_decode(urldecode($col)); 
}, $r); 

http://php.net/manual/en/function.mysql-fetch-assoc.php

http://php.net/manual/en/function.urldecode.php

+0

このように返信する {"記録": "{" "ID": "1"、 "名前": "ジョンスミス"、 "メール": "[email protected]"、 "tel": "12345678" 「2016-07-07 12:50:52」}、{"ID": "2"}、{0}、{ 、 "name"、 "Anna Chan ????"、 "email": "[email protected]"、 "tel": "87654321"、 "total": "200"、 "edm": "N" "receipt": "????"、 "timestamp": "2016-07-07 12:52:15"}]} ????私がutf8_decodeをutf8_decode(urldecode($ col))から取り除くと、 中国語の文字です。 それは\ u66f4 \ u65b0 \ u65e5 \ u671fを返します。 どうすれば解決できますか? – lee

関連する問題