• 0
Sign in to follow this  
MTavares

Contar campos vazios Mysql

Question

Pessoal.

Estou precisando de uma força. Estou finalizando um sistema de currículos, porém preciso gerar qtos % falta para finalizar. Até aqui tudo bem, porém para o sucesso dessa parte do projeto, estou querendo contar quantos campos vazios possui uma tabela SQL. Tentei usar o IS NOT NULL, mas acho que estou fazendo errado. Alguém saberia como fazer isso pelo Mysql? Por ex:

Vamos supor que eu tenha a seguinte tabela:

cadastro_candidatos

Nessa tabela tenha 4 campos, sendo:

NomeCandidato

DataNascimento

Estado

Cidade

só que o campo DataNascimento não é obrigatório, logo ele não vai ser preenchido na tabela. É aí que entra o raciocínio... preciso contar na tabela apenas 3 campos preenchidos. Alguém sabe como se faz no SQL?

Obrigado.

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Sei que se usar dessa forma, faço a contagem:

SELECT IS NULL(`campo`) FROM`minha_tabela`

Porém quero contar todos os campos e uma só vez e não apenas um, pois a tabela tem 16 campos.

Obrigado.

Share this post


Link to post
Share on other sites
  • 0

Pessoal.

Estive pensando em criar mais uma tabela chamada "contagem". Nela ficaria armazenada a quantidade de campos que foram preenchidas, mas para isso, preciso saber quantos campos foram preenchidos em um formulário. Tentei algo do gênero:

$c = 0; 

foreach($_POST as $post){ 
    $c .= (!empty($_POST))?(1) :( 0); 
} 
echo "Campos preenchidos " .count($post);

Infelizmente não obtive êxito.... Alguém poderia me dar essa força?

Obrigado.

Share this post


Link to post
Share on other sites
  • 0

Estou quase chegando lá. Tentei dessa forma:

$i = 1;
for($x = 0; $x <= count($_POST['campo']); $x ++) { 
if (!empty($_POST['campo'][$x])){
    echo $i;
$i++;
}
}

Só que ao fazer isso, ele retorna:

1 2

Gostaria de pegar o último valor, que seria nesse caso o número 2. Tentei fazer com o array_pop(), mas não consegui.

Obrigado

Share this post


Link to post
Share on other sites
  • 0

Consegui a solução. Para quem precisar, segue abaixo:

$sql = mysql_query("SELECT * FROM tabela");
$numCampos = mysql_num_fields($sql); 
$linhaI = 0;

for($a = 0; $a < $numCamposi; $a++){ 
    if( mysql_result($sql,$linhaI,$a)!= ''){ 
        $camposI[$countI] = mysql_field_name($sql,$a); 
        $countI++; 
    } 
}

No link abaixo, tem uma opção boa para quem quer criar uma ferramenta de quantidade de campos que foram preenchidos em %.

http://pastebin.com/gffSw68M

Abraços

Edited by MTavares

Share this post


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.

Sign in to follow this