Barra de progresso durante a execução enquanto loop
Eu tenho esse loop while, que basicamente percorre vários registros em um banco de dados e insere os dados em outro:
$q = $con1->query($users1) or die(print_r($con2->errorInfo(),1));
while($row = $q->fetch(PDO::FETCH_ASSOC)){
$q = $con2->prepare($users2);
$q->execute(array($row['id'], $row['username'])) or die(print_r($con2-errorInfo(),1));
}
(O script foi encurtado para facilitar a leitura - o correto tem um array muito maior)
Eu gostaria de fazer isso mais gráfico, e mostrar uma barra de progresso sobre o quão longe ele foi, em vez de apenas ver um carregamento de página por alguns minutos (existem ~ 20.000 linhas neste - eu tenho tabelas com muito mais dados)
Eu entendo que você poderia obter o número total do banco de dados antigo, e eu também poderia facilmente colocar o número atual em uma variável como esta:
$q = $con1->query($users1) or die(print_r($con2->errorInfo(),1));
$i = 0;
while($row = $q->fetch(PDO::FETCH_ASSOC)){
$q = $con2->prepare($users2);
$q->execute(array($row['id'], $row['username'])) or die(print_r($con2-errorInfo(),1));
$i++;
}
Mas agora eu preciso realmente buscar$i
e exibi-lo - ou algo parecido.
Como isso é feito "facilmente"?
O código da barra de progresso pode estar no mesmo documento que o loop while ou em outro, se for mais fácil.