{"s":"ok",
"t":[1549584000,1549843200,1549929600,1550016000,1550102400,1550188800,1550448000,1550534400,1550620800,1550707200,1550793600],
"c":["4.890","4.880","4.900","4.900","4.910","4.930","4.990","5.140","5.170","5.100","4.830"],
"o":["4.850","4.890","4.900","4.900","4.900","4.910","4.930","5.000","5.150","5.170","5.100"],
"h":["4.910","4.900","4.940","4.940","4.950","4.940","5.000","5.180","5.210","5.170","5.110"],
"l":["4.830","4.840","4.870","4.860","4.860","4.900","4.920","4.980","5.110","5.070","4.780"],
"v":[4551400,6424900,1877900,2492000,2931300,4548000,5863800,8213200,5692400,10684700,29059000],
"date_from":"2019-02-08", "date_to":"2019-02-25"}
上面是我的json数据,我可以知道如何将数据循环到1549584000,4.850,4.910,4.830,4551400
并将其循环到数据库吗?
<?php
$data = file_get_contents('history.json'); //save it as history.json
$json = json_decode($data,true);
//echo $characters->s;
//echo '<pre>'; print_r($characters);
$i = 0;
foreach($characters['t'] as $wi){
$i++;
mysql_query("INSERT INTO raw_data SET id= '".$i."',t = '".$wi."'")or die(mysql_error());
}
$j = 0;
foreach($characters['c'] as $ji){
$j++;
mysql_query("UPDATE raw_data SET c = '".$ji."' WHERE id = '".$j."'")or die(mysql_error());
}
$z = 0;
foreach($characters['o'] as $oi){
$z++;
mysql_query("UPDATE raw_data SET o = '".$oi."' WHERE id = '".$z."'")or die(mysql_error());
}
$a = 0;
foreach($characters['o'] as $ai){
$a++;
mysql_query("UPDATE raw_data SET h = '".$ai."' WHERE id = '".$a."'")or die(mysql_error());
}
$b = 0;
foreach($characters['h'] as $bi){
$b++;
mysql_query("UPDATE raw_data SET h = '".$bi."' WHERE id = '".$b."'")or die(mysql_error());
}
$c = 0;
foreach($characters['l'] as $li){
$c++;
mysql_query("UPDATE raw_data SET l = '".$li."' WHERE id = '".$c."'")or die(mysql_error());
}
$d = 0;
foreach($characters['v'] as $vi){
$d++;
mysql_query("UPDATE raw_data SET v = '".$vi."' WHERE id = '".$d."'")or die(mysql_error());
}
?>
我尝试像这样编写它,但它可以正常工作,但是效果不佳,加载速度非常慢。请给我一些建议。问候
由于您的第一个查询有些不同,因此无法进入循环,我们必须将其分开处理,对于所有其他查询,这是一种有效的方法。
您可以尝试使用
$i = 0;
foreach($characters['t'] as $wi){
$i++;
mysql_query("INSERT INTO raw_data SET id= '".$i."',t = '".$wi."'")or die(mysql_error());
}
$data = ['t','c','o','h','l','v'];
for ($k=0; $k < sizeof($data) ; $k++) {
for($i = 2;$i < 7; $i++){
foreach ($characters[$data[$k]] as $value) {
for ($j=0; $j < sizeof($characters[$data[$k]]) ; $j++) {
mysql_query("UPDATE raw_data SET '".$data[$k]."' = '".$value."' WHERE id = '".$j."'");
}
}
}
}