PHP foreach の問題、オンライン待機中
PC クライアントが次の JSON データをバックグラウンドに POST します。JSON 結果配列のデータ エントリが固定されていない場合があります。場合によっては 1 つのグループ、場合によってはそれ以上のグループがあります。
例: json 結果配列内の 1 セットのデータ
{
"result" : [
{
"old_ip" : "61.141.251.21",
"new_ip" : "61.141 .251.22",
"urldata" : "img1.taabao.comr",
"通常" : "100",
"エラー" : "102",
"エージェント" : "Mozilla /4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)r"
}
]
}
例: json Result 配列内のデータ 3 セット
{
"Result": [
{
"OLD_IP": "61.141.251.23",
"New_ip": "61.141 .251.24"、
"urldata" : "img1.taabao.comr"、
"通常" : "100"、
"エラー" : "102"、
"エージェント" : "Mozilla /4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)r"
},
"old_ip" : "61.141.251.25",
"new_ip" : "61.141.251.26",
"urldata" : "img2.taabao.comr",
"通常" : "100",
"エラー" : "102",
"エージェント " : "Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)r"
},
"old_ip" : " 61.141 .251.27",
"new_ip" : "61.141.251.28",
"urldata" : "img3.taabao.comr",
"通常" : "100",
"エラー" : "102",
"エージェント" : "Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)r"
}
]
}
データ テーブル:
CREATE TABLE `result` (
`id` int(10) unsigned NOT NULL auto_increment,
`old_ip` varchar(100) NOT NULL ,
`new_ip` varchar(100) NOT NULL、
`urldata` varchar(100) NOT NULL、
`normal` varchar(10) NOT NULL、
`error` varchar(10) NOT NULL,
`agent` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
で PHP を受信します背景コード:
c1862a9e9b7955617fca8da800a9bf58
foreach を使用して $arr のデータを取り出してデータベースに書き込む方法を専門家の皆様にお聞きしたいです (結果データのエントリが固定されていない問題を考慮する必要があります)。形式は次のとおりです。完全なコードを提供してください。必要に応じてボーナスポイントも!
id old_ip new_ip urldata 通常エラー エージェント
1 61.141.251.21 61.141.251.22 img1.taabao.com 100 102 Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)
2 61.141.251.23 1.141 .251.24 img2.taabao.com 100 102 Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)
------解決策アイデア----------------------
<br />$user_ip=get_userip();<br /><br />$result=$_POST["result"]; <br /> <br />$arr=json_decode($result,true);<br />$arr=$arr['result'];<br /> <br />if($arr){<br /> foreach($arr as $val){<br /> $val['user_ip'] = $user_ip;<br /> $val = array_map('mysql_real_escape_string',$val);<br /> $str = "'".implode("','", $val)."'";<br /> $sqlstr = "insert into result(old_ip,new_ip,urldata,normal,error,agent,user_ip) values(".$str.")";<br /> echo $sqlstr.'<br>';<br /> mysql_query($sqlstr) or die(mysql_error());<br /> }<br />}<br />