Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luciano Zembruzki

problema com while

Recommended Posts

Olá pessoal, estou com um sério problema, espero que possam ajudar.

 

Tenho um index.php com um botão que passa via post um parâmetro para outra pagina fazer um processamento.

 

eu preciso executar esse script enquanto o usuário não ordenar a parada do mesmo

 

A maneira que pensei em fazer foi

(while == true){

//EXECUTA PROCESSAMENTO NECESSARIO

}

 

Porém eu não sei como parar isso, pois depois de entrar eu não consigo mais sair do laço. Minha duvida é como parar esse laço de repetição ao clicar em algum botão que fique na minha pagina index.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Te dou 90% de certeza de que isso é uma gambiarra enorme. Deixar um script rodando em looping infinito é provavelmente um enorme desperdício de recursos.

 

Explique melhor seu problema para que possamos lhe ajudar a pensar em outra solução.

 

De todo modo, vou explicar como você pode quebrar a execução de um while "infinito":

 

<?php
$i = 0;
while ( true ) {
    echo $i . '<br>';
    
    if ( ++$i === 5 )
        break;//para a exeução e finaliza o script
}

 

Resultado:

0

1

2

3

4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou desenvolvendo um sistema para aplicação dinâmica de QoS sobre o protocolo VoIP em RouterOS.

Então preciso coletar todo trafego que passa pelo roteador e identificar o tipos dos pacotes. Caso um protocolo VoIP for identifica eu aplico regras no roteador. A partir do momento que o protocolo não estiver mais presente na rede eu removo essas regras.

 

Eu preciso então sempre ficar coletando os fluxos do roteador, a não ser que o usuário indique que deve parar a rotina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, amigo. Neste caso, concordo com você.

Apenas não esqueça de utilizar a instrução sleep() ou usleep() para não sobrecarregar o uso do processador.

Eu iria sugerir que cada iteração rode no máximo a cada 0.1s, que seria 10 vezes em um segundo. Não mais do que isso.

 

Com o break você finaliza o while. E você ainda pode usar o exit/die para interromper o script por completo.

 

Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo existe uma ação chamada de long polling php e utilizada para efetuar notificação em tempo real por um período, então achou que seria melhor essa ação. =D 

 

Se gostou, fazer dar uma curtida um obrigado. =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por iguulima
      Bom dia a todos, tenho em meu banco de dados uma tabela de pedidos, onde nesse pedidos estão salvos as id's dos produtos que foram selecionados pelo usuário, gostaria de saber se tem alguma forma utilizando um while que possa selecionar os produtos mais pedidos dessa tabela, não tenho ideia por onde começar. Consigo listar todos apenas mas não sei como selecionar os que são mais pedidos.
    • Por iguulima
      Ola a todos,
      Estou com uma dúvida e ja tentei de tudo que estão dentro das minhas limitações de conhecimento. Tenho um laço de repetição While sendo executado e quero que uma Variavel seja executada apenas uma vez dentro desse laço. Existe essa possibilidade. Obrigado a todos. Segue o código:

       
      <?php $consult = $row['id']; $sql = "SELECT * FROM upload_data WHERE USER_CODE = '$consult' ORDER BY id ASC"; $resultadoimg = mysql_query($sql); $numero_registros = mysql_num_rows($resultadoimg); while($registrosimg = mysql_fetch_array($resultadoimg)) { ?> <li data-target="#carousel-custom" data-slide-to="0" <?php ele precisa ser executado uma unica vez aqui?>><img src="" alt=""></li> <?php } ?>  
    • Por flipmartinz13
      Estou tentando fazer esse exercício de introdução a programação em C++, e estou tendo dificuldades para criar os algoritmos. Alguém poderia me ajudar?


      Uma agência de turismo quer fazer um levantamento das praias da cidade para um programação turística de verão, sabendo-se que cada praia tem um nome e uma distância (em Km) do hotel. Criar um algoritmo que forneça os seguintes dados:
      18

       Porcentagem de turistas nas praias próprias do hotel
       A praia mais adiante
       Nome e distancia das praias não-próprias com distancia do hotel maior que 10 km.
      O algoritmo acaba quando se digita @ para nome da praia.
    • Por mamotinho
      Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito.

       
      declare @id int declare @getdate datetime select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate() while @id is not null begin select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id end quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.
    • Por eduardodsilvaq
      Não sei oq tem de errado.
       
      O erro:
      Notice: Undefined index: name in C:\AppServ\www\includes\functions.php on line 105 A linha do erro:
      <td width="106"><div class="fonte">'. $row["name"] .'</div></td> O codigo:
      function mini_ranking (){ $PDO = db_connect_gamedata(); $sql = "SELECT name baselevel FROM u_hero WHERE class <> '80' ORDER BY baselevel Desc Limit 6"; $result = $PDO->query($sql); $guild = $result->fetchAll(PDO::FETCH_ASSOC); $i = 1; echo '<table width="153" height="0" border="0">'; foreach($guild as $row) { echo '<tr> <td width="0" height="0" align="center"><div class="fonte">'. $i++ . '</div></td> <td width="106"><div class="fonte">'. $row["name"] .'</div></td> <td width="20"><div class="fonte">'. $row["baselevel"] .'</div></td> <tr>'; } echo '</table>'; }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.