Ir para conteúdo
Fórum Script Brasil
  • 0

Como rpetir função até retornar true?


rxhxtx

Pergunta

Olá, eu gostaria de fazer uma função simples, apenas para aprendizado.

Eu fiz desta forma:

$query = "SELECT * FROM aleatorio WHERE id = :id ;" ;

srand((double)microtime()*1000000);
$numero = rand(1,9);
$ncrip = $numero;

$dbh = new PDO('mysql:host=localhost;dbname=testes', 'root', '');

			$stmt = $dbh->prepare($query);
			$stmt->execute(array(':id' => $numero));

			$row = $stmt->fetch(PDO::FETCH_ASSOC);

			if ($row == 0){
			true;
			
			}else{
				
				 header( "refresh:0;url=cadastra.php" ); 
			}
				
			
?>

Funciona, mas toda vez que a função encontra um numero de 1 a 9 cadastrado no db ela atualiza a página, escolhe outro numero aleatorio e testa se aquele encaixa, atualiza a pagina........

até que uma hora ela encontra um "espaço" e para de atualizar a pagina..

 

o que eu gostaria de fazer é que ela ficasse gerando aleatorios e consultando até encontrar o espaço e continuar a leitura, sem mudar de pagina, somente dentro da função

 

ex

gera aleatorio (1,9)

se $resultado == 1 

       repete gera aleatorio

}

se $resultado == 0

continua.....

 

 

mas como faz isso???

fiquei com essa duvida e não estou conseguindo solucionar 

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
22 horas atrás, Leonardo Persan disse:

Fala Leonardo, 

 

cara, até entendi o conceito, mas não consigo imaginar isso em uma função que fuja dos exemplos do manual.

 

Voce sabe como eu conseguiria expressar o que eu preciso com o WHILE?

 

repetir a buscar até retornar 0

<?php
srand((double)microtime()*1000000);
$numero = rand(1,9);
$query = "SELECT * FROM aleatorio WHERE id = :numero ;" ;

$dbh = new PDO('mysql:host=localhost;dbname=testes', 'root', '');
$stmt = $dbh->prepare($query);
$stmt->execute(array(':numero' => $numero));

$row = $stmt->fetch(PDO::FETCH_ASSOC);

	while($row !== 0){
			
			//repetir o processo rand
      		// não tenho ideia o que colocar aqui
      
			}else{
				
				 echo $numero;
      
			}			
		
?>

 

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

<?php

$query = "SELECT * FROM aleatorio WHERE id = :numero ;" ;

$dbh = new PDO('mysql:host=localhost;dbname=testes', 'root', '');
$stmt = $dbh->prepare($query);

do {
	$numero = rand(1,9);
	$stmt->execute(array(':numero' => $numero));
	$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
} while(count($row) > 0);

echo $numero;

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 22/04/2019 em 22:39, Leonardo Persan disse:

Tenta assim:


<?php

$query = "SELECT * FROM aleatorio WHERE id = :numero ;" ;

$dbh = new PDO('mysql:host=localhost;dbname=testes', 'root', '');
$stmt = $dbh->prepare($query);

do {
	$numero = rand(1,9);
	$stmt->execute(array(':numero' => $numero));
	$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
} while(count($row) > 0);

echo $numero;

p****... funcionou hehehehe

massa demais!!!!!!!!

 

valeu mais uma vez amigo. p*** professor!!! 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...