Loop

1. Loop

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 03/05/2012 - 19:27h

Preciso criar um loop para a consulta abaixo. Ele tem que mostrar o valor da "$rows" atualizada tempo todo, como faço para isso acontecer?

Obrigado,

Geraldo.

Segue script:



<?php

$link = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco", $link);

$result = mysql_query("SELECT * FROM tabela", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows";

?>



  


2. Re: Loop

Eriton Almeida
eritonalmeida

(usa Debian)

Enviado em 03/05/2012 - 21:53h

Já tentou com meta refresh?
Dá pra usar um while, mas vai ficar mostrando os valores anteriores




<?php
$link = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco", $link);

$result = mysql_query("SELECT * FROM tabela", $link);
$num_rows = mysql_num_rows($result);

echo '
<html>
<head>
<meta http-equiv="refresh" content="1"/>
</head>
<body>
<p>Rows: '.$num_rows.'</p>
</body>
</html>';
?>



3. Re: Loop

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 04/05/2012 - 12:47h

c


while ( 1 == 1 ) { # laco inifinito
$result = mysql_query("SELECT * FROM tabela", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows";
sleep( 2 ); # espera 2 segundo pra consultar novamente
}


Cuidado não coloque a conexao com o banco dentro do laço de repetição, deixo antes, do contrario ficará fazendo diversas conexões desnecessárias com a base.


4. Re: Loop

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 04/05/2012 - 15:02h

Caros amigos eritonalmeida e rai3mb, obrigado pelo ajuda.

Fiz da forma do eritonalmeida e deu certo, só que ele implica no cuidado que o rai3mb demonstra, ele abre e fecha o bando de dados o tempo todo e monitorei a frequencia no MySql Administrator - Health e ficou muito alta.

Optando pela forma do rai3mb, fiz assim e não deu certo. O que estou fazendo de errado?

Obrigados.

Geraldo.

<?php

$link = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco", $link);


while ( 1 == 1 ) { # laco inifinito
$result = mysql_query("SELECT * FROM tabela", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows";
sleep( 2 ); # espera 2 segundo pra consultar novamente
}

?>




5. Re: Loop

Vitor Luis
VitorLuis

(usa Ubuntu)

Enviado em 04/05/2012 - 16:19h

Cara, você pode tentar usar o PDO.

Faz assim:


<?php

$pdo = new PDO("host=localhost;dbname=meuBanco","usuario","senha");

while (1 == 1) {
$count = $pdo->exec("SELECT * FROM table");
echo $count;
sleep(2);
}

?>


6. Re: Loop

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 04/05/2012 - 16:30h

Vitor, usei o seu script e não rodou, deu erro no browser.




7. Re: Loop

Vitor Luis
VitorLuis

(usa Ubuntu)

Enviado em 04/05/2012 - 16:37h

Reporte o erro aqui.


8. Re: Loop

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 04/05/2012 - 16:57h

Erro no servidor
O site encontrou um erro ao recuperar http://192.168.0.100/coop/coop5.php. Ele pode estar em manutenção ou configurado incorretamente.
Veja algumas sugestões:
Recarregue esta página da web mais tarde.
Erro HTTP {500 (Internal Server Error): Ocorreu uma condição inesperada enquanto o servidor tentava completar a solicitação.


9. Re: Loop

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/05/2012 - 02:17h

Cara, não sei se estou falando besteira e se for o caso outros aqui vão dizer. Não manjo muito de php, mas o que você precisa é um Schedule, Timer ou Job. Ou seja, você precisa que um evento seja iniciado/disparado em um determinado período de tempo.

A solução que o eritonalmeida propôs funciona porém as consequências você mesmo já viu. Na forma do rai3mb, aqui me corrijam se estiver errado, não irá ocorrer resposta para o request, uma vez que há um loop infinito.

Ou você utiliza a solução que o eritonalmeida propôs ou pesquise por Schedules, Timer e Jobs no Php. Em aplicações Java EJB isso é possível através da annotation @Timout. Uma vez que a aplicação é "deployada" o container EJB (JBoss, GlasFish, etc) se encarrega de executar o Job. Talvez exista algo semelhante para Php/Apache:







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts