2016-07-12 7 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); 

//이

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 ","이름 ":"John Smith ","이메일 ":"[email protected] ","tel ":"12345678 " , "total": "0", "edm": "Y", "receipt": "", "timestamp": "2016-07-07 12:50:52"}, { "ID": "2" , "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