2014-07-26 4 views
0
<?php 
$string ='{"type":"Text","totalprice":"0.05","totalgsm":"6","remaincredit":"63.6433","messages": [ 
     {"status":"1","messageid":"157157","gsm":"9211111111111"}, 
     {"status":"1","messageid":"157154","gsm":"9211111111112"}, 
     {"status":"1","messageid":"157151","gsm":"9211111111113"}, 
     {"status":"1","messageid":"157149","gsm":"9211111111114"}, 
     {"status":"1","messageid":"157142","gsm":"9211111111115"}, 
     {"status":"1","messageid":"157130","gsm":"9211111111116"} 
     ]}'; 
?> 

에 사용 삽입 : type = text, totalprice = 0.05, totalgsm = 6, remainingcredit = 63.6433디코딩 JSON 응답과 내가 얻을하려는 각

먼저 INSERT 쿼리 :

type   = text 
totalprice  = 0.05 
totalgsm  = 6 
remainingcredit = 63.6433 

status=1 messageid=157157 gsm=9211111111111 
status=1 messageid=157157 gsm=9211111111112 
status=1 messageid=157157 gsm=9211111111113 
status=1 messageid=157157 gsm=9211111111114 

내가이 쿼리에서 MYSQLDB에 삽입 할 INSERT에 대한 쿼리 messages 배열 foreach 모두를 사용하여 주어진 모든 것을 삽입 할

status=1 messageid=157157 gsm=9211111111111 
status=1 messageid=157157 gsm=9211111111112 
status=1 messageid=157157 gsm=9211111111113 
status=1 messageid=157157 gsm=9211111111114 

이 json 응답 유형 및 DB에 삽입하는 방법을 디코딩하는 방법을 알려주십시오.

+3

사용 json_decode()와 사용 foreach는 – Khushboo

+0

디코드 JSON 온라인 : http://json_decode.onlinephpfunctions.com/ –

답변

0

는 당신이이 방법을 수행 할 수 있습니다 :

$string = json_decode('{"type":"Text","totalprice":"0.05","totalgsm":"6","remaincredit":"63.6433","messages": [ 
    {"status":"1","messageid":"157157","gsm":"9211111111111"}, 
    {"status":"1","messageid":"157154","gsm":"9211111111112"}, 
    {"status":"1","messageid":"157151","gsm":"9211111111113"}, 
    {"status":"1","messageid":"157149","gsm":"9211111111114"}, 
    {"status":"1","messageid":"157142","gsm":"9211111111115"}, 
    {"status":"1","messageid":"157130","gsm":"9211111111116"} 
    ]}', true); 

$type = $string['type']; 
$totalprice = $string['totalprice']; 
$totalgsm = $string['totalgsm']; 
$remaincredit = $string['remaincredit']; 

/** Insert using First Query **/ 

/** Now for message array **/ 
foreach ($string['messages'] as $key => $msg) { 
    $status = $msg['status']; 
    $msg_id = $msg['messageid']; 
    $gsm = $msg['gsm']; 
    /*** Insert using your second query ***/ 
    /** ------------------------ **/ 
} 
3

json_decode()을 사용하면이 문자열을 디코딩 할 수 있습니다.

$data = json_decode($string); 
+1

'json_decode ($ 문자열, 사실) ;'배열 얻기 –

0

@myeishvar에서 설명한대로 json_decode을 사용하고 싶습니다.

이렇게하면 JSON 문자열을 PHP 배열로 변환 할 수 있습니다.

$records = json_decode($string); 
print_r($records); // Display the array contents 

이렇게하면 배열의 각 레코드에 필요한 정보가 에코됩니다.

foreach ($records as $record) { 
echo 'Type: '.$record->type.'<br>'; 
echo 'Total Price: '.$record->totalprice.'<br>'; 
echo 'Total GSM: '.$record->totalgsm.'<br>'; 
echo 'Remaining Credit: '.$record->remainingcredit.'<br>'; 
echo '<br>'; 
} 

는 데이터베이스 테이블에 개별 레코드에 값을 삽입하는 데 사용할 수 foreach와 쿼리를 작성하는 예입니다.

$sql='INSERT INTO recordtable (type, totalprice, totalgsm, remainingcredit) VALUES '; 
foreach ($records as $record) { 
    $sql .= '('.$record->$type.', '.$record->$totalprice.', '.$record->$totalgsm.', '.$record->$remainingcredit.'), ' 
} 
...do your SQL query... 

이 데이터가 사용자 입력 (양식)에서 온 것이라면 데이터베이스에 삽입하기 전에 제대로 소독해야합니다.