Esse arquivo tem mais de 7000 linhas onde o php precisa verificar linha por linha e comparar se há um combinação de cada linha com uma tabela na base.
Acontece que essa verificação esta sendo feita ok. Porem quando verificada, é preciso fazer um update no banco a partir dos dados lidos no arquivo. Até 3000 e poucas linhas, o update vai bem. Depois trava a pagina.
Gostaria de arranjar uma forma de dividir essa tarefa em um numero que permitisse que o processo não parasse por excesso tempo.
Alguma orientação?
Eis o código atual.
$diretorio = "estoque/";
//Fizemos todos os testes e esta tudo certo.
$arq = fopen($diretorio.$nome,'r'); // abre arquivo
//LÊ O ARQUIVO ATÉ CHEGAR AO FIM
while($linha = fgets($arq)) // Lê linha por linha
{
$linha_cada = explode('|', $linha);
$busca_string= "
select
estoque.id_estoque,
estoque.id_produto,
estoque.id_cor,
estoque.id_tamanho,
produtos.referencia_produtos
from estoque
inner join produtos on estoque.id_produto = produtos.id_produtos
inner join tamanhos on estoque.id_tamanho = tamanhos.id_tamanhos
inner join cores on estoque.id_cor = cores.id_cores
where
produtos.referencia_produtos='$linha_cada[0]' and
cores.nome_cores='$linha_cada[1]' and
tamanhos.nome_tamanhos='".$linha_cada[2]."'";
$busca_query= $conexao->query($busca_string);
if ($busca_query->num_rows>0)
{
list($id_estoque, $id_produto, $id_cor, $id_tamanho, $referencia_produtos)=$busca_query->fetch_row();
$atualisa_estoque_string =
"update estoque set estoque=".$linha_cada[3]." where id_estoque=".$id_estoque;
$atualisa_estoque_query = $conexao->query($atualisa_estoque_string);
if ($contador%100==0)
{
$conexao->close;
$conexao->init;
}
}
} //FIM DO WHILE
Pergunta
Carlos Rocha
Pessoal, preciso de uma orientação.
Estou abrindo um arquivo que possui n linhas.
Cada linha possui uma estrutura assim:
dado_a|dado_b|dado_c|dado_d|dado_e
Todos separados por | n linhas assim.
Esse arquivo tem mais de 7000 linhas onde o php precisa verificar linha por linha e comparar se há um combinação de cada linha com uma tabela na base.
Acontece que essa verificação esta sendo feita ok. Porem quando verificada, é preciso fazer um update no banco a partir dos dados lidos no arquivo. Até 3000 e poucas linhas, o update vai bem. Depois trava a pagina.
Gostaria de arranjar uma forma de dividir essa tarefa em um numero que permitisse que o processo não parasse por excesso tempo.
Alguma orientação?
Eis o código atual.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.