Jump to content
Fórum Script Brasil
  • 0

Como rpetir função até retornar true?


Question

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 to post
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148680
    • Total Posts
      644501
×
×
  • Create New...