Ir para conteúdo

POWERED BY:

Arquivado

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

felipebmfaria

[Resolvido] Atualizar campo idade na virada do ano

Recommended Posts

Bom dia!

 

Tenho uma tabela de cadastro com o campo idade... acontece que com o passar dos anos esta idade muda, correto?

 

Como vcs costumam fazer para manter este campo sempre atualizado?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao, acabei criando o campo idade para armazenar...

 

a coisa funciona mais ou menos assim:

 

se idade estiver entre '10' e '13'

categoria = 'Junior';

se idade estiver entre '14' e '17'

categoria = 'Adolescente';

 

Mas eu preciso que a categoria mude automaticamente quando a idade chegar...

 

tentei isso aqui mas deu erro na function, nao sei se é por estar dentro de um mysql_fetch_row, confesso que estou um pouco perdido... rs

 

$busca=mysql_query("SELECT * FROM tabela");
if(!mysql_num_rows($busca)){ 
echo 'Nenhum dado cadastrado na base de dados';
}else{
      while($ver=mysql_fetch_row($busca)){
                    
		$id=$ver[0];
		$nascimento_br = $ver[10] = implode(preg_match("~\/~", $nascimento) == 0 ? "/" : "-", array_reverse(explode(preg_match(  "~\/~"                    , $nascimento) == 0 ? "-" : "/", $nascimento)));
					
					
		    function CalcularIdade($nascimento_br) {
                    $hoje = date("d-m-Y"); 
                    $aniv = explode("/", $nascimento_br); 
                    $atual = explode("-", $hoje); 
                    $idade = $atual[2] - $aniv[2];
                    if($aniv[1] > $atual[1]) 
                    {
                    $idade--; 
                    }
                    elseif($aniv[1] == $atual[1] && $aniv[0] > $atual[0]) 
                    {
                    $idade--; 
                    }
                    return $idade; 
                    }
                    $idade = CalcularIdade("$nascimento_br");
					
					
					
		if ($idade=='9' || $idade=='10' || $idade=='11' || $idade=='12') 
                        $categoria = 'Júnior';
	                          elseif ($idade=='13' || $idade=='14' || $idade=='15' || $idade=='16')
                                      $categoria = 'Adolescente';
		                                        elseif ($idade>='17')
					                             $categoria = 'Ex-embaixador';
					
		mysql_query("UPDATE tabela SET categoria='$categoria', idade='$idade' WHERE id='$id' ");
					
					
					}
				    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você grava a informação da data na tabela? Grava a data de nascimento? O ano? Grava como varchar ou como date?

 

Outra coisa, não coloque a definição da função dentro do while, porque a cada iteração ela vai ser redeclarada. Defina fora e utilize dentro.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa de um campo categoria. Na hora de pesquisar, utilize o DATEDIFF do MySQL para calcular a idade e crie esta coluna em tempo de execução. Se tiver dúvidas sobre isto, posso mover seu tópico para o fórum de MySQL.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

[Resolvido]

 

Sakei, Matias. Obrigadão. Valeu mesmo...

 

O codigo ficou assim...

 

$busca=mysql_query("SELECT * FROM tabela");
if(!mysql_num_rows($busca)){ 
echo 'Nenhum dado cadastrado na base de dados';
}else{
      function CalcularIdade($nascimento_br) {
      while($ver=mysql_fetch_row($busca)){
                    
		$id=$ver[0];
		$nascimento_br = $ver[10] = implode(preg_match("~\/~", $nascimento) == 0 ? "/" : "-", array_reverse(explode(preg_match(  "~\/~"                    , $nascimento) == 0 ? "-" : "/", $nascimento)));
					
					
		    
                    $hoje = date("d-m-Y"); 
                    $aniv = explode("/", $nascimento_br); 
                    $atual = explode("-", $hoje); 
                    $idade = $atual[2] - $aniv[2];
                    if($aniv[1] > $atual[1]) 
                    {
                    $idade--; 
                    }
                    elseif($aniv[1] == $atual[1] && $aniv[0] > $atual[0]) 
                    {
                    $idade--; 
                    }
                    return $idade; 
                    }
                    $idade = CalcularIdade("$nascimento_br");
					
					
					
		if ($idade=='9' || $idade=='10' || $idade=='11' || $idade=='12') 
                        $categoria = 'Júnior';
	                          elseif ($idade=='13' || $idade=='14' || $idade=='15' || $idade=='16')
                                      $categoria = 'Adolescente';
		                                        elseif ($idade>='17')
					                             $categoria = 'Ex-embaixador';
					
		mysql_query("UPDATE tabela SET categoria='$categoria', idade='$idade' WHERE id='$id' ");
					
					
					}
				    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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