1
Well I have a function that is complex, because I need within the same function to do several for
due to the complexity and amount of information.
I am consuming an API where I need to get monthly data from a certain person, and every day can have several items, ie changing in kids.
Pessoa 01
MES 01
PRODUTO 01
PRODUTO 02
MES 02
PRODUTO 01
MES 03
PRODUTO 01
PRODUTO 02
PRODUTO 03
MES 04
So I have to go through every data and save one by one. My function developed as follows:
$todosMembros = DB::select('select id from membros');
foreach ($todosMembros as $membro){
for($a = 1; $a < 13; $a++){ //AQUI preciso ir pois é mensal então tenho 12 messes
$categorias = meuAPI; //AQUI preciso ir uma vez para cada membro
$json_file = file_get_contents($categorias);
$json_str = json_decode($json_file);
$todasCategorias = $json_str->list;
$tamanho = count($todasCategorias);
if($tamanho == 0){//CASO Não haja dados para ele não faço nada
}else{
$tamnhoArray = count($todasCategorias); //QUANTIDADE DE PRODUTOS
for($w = 0; $w < $tamnhoArray; $w++){ //PARA CADA PRODUTO SALVO NO BANCO
DB::select('salvar dados');//AQUI EFETIVO O SALVAMENTO
}
}
}
}
My problem is that this saving however I am exceeding the waiting time of the browser, I mean it takes so long in the loops of the function that the time limit is exceeded, I checked in the database and this saving normally, after saving everything I list to verify if it happened all right, but nothing appears precisely by the limit.
My question is this: What is the best way to effect this data in the database, so as not to generate problems for my application
How to use the
ob_flush()
?– Renan Rodrigues
@Renanrodrigues edited the answer and added an explanation of ob_flush()
– Neuber Oliveira