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.

questionAnswers(2)

yourAnswerToTheQuestion