Im trying to import json data to mysql.My json file nearly 3.7Mb and have nearly 17k rows (test data real data will be nearly 65k rows ).But with my script its very slow and it takes nearly 8-9min.Is there any fast way to import json data to mysql with php progress interface ? And im trying to add progress bar feature and its works for now.
$veri=json_decode(file_get_contents('auctions.json'));
$sayi=count($veri->alliance->auctions);
$a=$veri->alliance->auctions;
$yuzde=round($sayi/100);
echo "<div id='tasiyici'>";
$sql=$db->prepare("INSERT INTO auctions (id, auc, item, owner, bid, buyout, quantity, timeLeft) VALUES ('',?,?,?,?,?,?,?)");
for ($i=0;$i<=$sayi;$i++){
$sql->execute(array($a[$i]->auc,$a[$i]->item,$a[$i]->owner,$a[$i]->bid,$a[$i]->buyout,$a[$i]->quantity,$a[$i]->timeLeft));
if($i%$yuzde=='0'){
$y=$i/$yuzde;
if(($y*4+4)>"180"){$pos=40-(($y*4+4)-180); $color="color:#fff";}
if(($y*4+4)>=220){$pos=0;}
echo "<div class='rakam' style='background-position:-".$pos."px 0;".$color."'>%".($y+1)."</div>";
echo "<div class='yuzde' style='width:".($y*4+4)."px;'></div>";
ob_flush();
flush();
}
}
echo "</div>";
echo "<br> $sayi data added.";
CSS Codes
<style>
body {
font-family:Arial;
}
#tasiyici {
width:400px;
height:17px;
display: block;
position: relative;
margin:50px auto;
background:#e3e3e3;
border-radius:5px;
overflow: hidden;
border:1px solid #ccc;
}
.yuzde {
height:17px;
display: block;
width:1px;
background:url("progressOverlay.png");
position: absolute;
top:0;
left:0;
z-index:1;
}
.rakam {
width:40px;
height:16px;
display: block;
line-height:17px;
position: absolute;
left:50%;
top:0;
margin-left:-20px;
z-index:9999;
background:url("progressOverlay.png") -40px 0 #e3e3e3 no-repeat;
font-size:11px;
}
</style>