Ir para conteúdo

POWERED BY:

Arquivado

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

Alex Nascimento

Verificar se coluna está vázia

Recommended Posts

Boa tarde comunidade!

 

Tenho uma tabela, que num primeiro momento fica com alguns campos vazios.

 

Preciso saber como verificar se o campo está vazio para que meu update seja lido.

Tentei fazer da seguinte maneira:

 

 

if(mysql_query("SELECT valor2 FROM tabela WHERE vara2 IS NULL AND email='".$_SESSION['email']."'"))
{
mysql_query("UPDATE tabela SET valor2='Valor 2',descricao2='Descricao 2' WHERE email='".$_SESSION['email']."' "); 
}

 

Para verificar o número de linhas de uma tabela utilizei o mysql_num_rows.

Existe algo parecido com isso para verificar se uma coluna está vazia?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou rodar a consulta direto no banco?

 

tem certeza q é null, não valor em branco ''?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar

 

 

SELECT campo1, campo2 FROM tabela
WHERE email IS NOT NULL

 

Assim vai trazer todos os campos que não são nulos dentro de "email".

 

Era isso que precisava? não entendi se vc QUER ou não o campo que esta nulo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

SELECT valor2 FROM tabela WHERE vara2 IS NULL OR vara2 = '' AND email = 'email'

se não der certo, tente explicar melhor sua duvida

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu queria criar uma condição: "Se coluna x estiver vazia: Realize ação".

 

Usei o mysql_fetch_array para transformar a query em um array, e peguei o índice da query para verificar se a coluna está vazia.

O problema é que isso resultou em um looping infinito.

 

Essas são as funções que estão dando problema:

 

 

// Lista varas de pesca
function listaVaras()
{
if($_SESSION['email'])
{
$queryEmail = mysql_query("SELECT email FROM history WHERE email='".$_SESSION['email']."'");
if(mysql_num_rows($queryEmail)!=0)
{
$rowVara1 = mysql_fetch_array(mysql_query("SELECT vara1, descricao1 FROM history WHERE email='".$_SESSION['email']."'"));
$rowVara2 = mysql_fetch_array(mysql_query("SELECT vara2, descricao2 FROM history WHERE email='".$_SESSION['email']."'"));
$rowVara3 = mysql_fetch_array(mysql_query("SELECT vara3, descricao3 FROM history WHERE email='".$_SESSION['email']."'"));
$rowVara4 = mysql_fetch_array(mysql_query("SELECT vara4, descricao4 FROM history WHERE email='".$_SESSION['email']."'"));


if($rowVara1['vara1'] !='')
{
while($rowVara1)
{
echo "<div class='rodname'>" . $row['vara1'] . "</div>" . "<div class='details'>" . $row['descricao1'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
  }
} 
else if($rowVara2['vara2'] !='')
{
while($rowVara2) 
{
echo "<div class='rodname'>" . $row['vara2'] . "</div>" . "<div class='details'>" . $row['descricao2'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
  }
} 
else if($rowVara3['vara3'] !='')
{
while($rowVara3) 
{
echo "<div class='rodname'>" . $row['vara3'] . "</div>" . "<div class='details'>" . $row['descricao3'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
  }
} 
else if($rowVara4['vara4'] !='')
{
while($rowVara4) 
{
echo "<div class='rodname'>" . $row['vara4'] . "</div>" . "<div class='details'>" . $row['descricao4'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
  }
} 


}


}
}

 

 

// salva vara de pesca
$task = $_GET['task'];

function salvaVara()
{
$queryEmail = mysql_query("SELECT email FROM history WHERE email='".$_SESSION['email']."'");
if(mysql_num_rows($queryEmail)==0)
{
$rowVara1 = mysql_fetch_array(mysql_query("SELECT vara1, descricao1 FROM history WHERE email='".$_SESSION['email']."'"));
$rowVara2 = mysql_fetch_array(mysql_query("SELECT vara2, descricao2 FROM history WHERE email='".$_SESSION['email']."'"));
$rowVara3 = mysql_fetch_array(mysql_query("SELECT vara3, descricao3 FROM history WHERE email='".$_SESSION['email']."'"));
$rowVara4 = mysql_fetch_array(mysql_query("SELECT vara4, descricao4 FROM history WHERE email='".$_SESSION['email']."'"));
mysql_query("INSERT INTO history (cliente,email,perfil,vara1,descricao1) VALUES ('".$_SESSION['nome']."','".$_SESSION['email']."','".$_SESSION['link_facebook']."','Vara 1','Descrição 1' )"); 
}
else if($rowVara1['vara1'] =='')
{
mysql_query("UPDATE history SET vara1='Vara 1',descricao1='Descricao 1' WHERE email='".$_SESSION['email']."' "); 
}
else if($rowVara2['vara2'] =='')
{
mysql_query("UPDATE history SET vara2='Vara 2',descricao2='Descricao 2' WHERE email='".$_SESSION['email']."' "); 
}
else if($rowVara3['vara3'] =='')
{
mysql_query("UPDATE history SET vara3='Vara 3',descricao3='Descricao 3' WHERE email='".$_SESSION['email']."' "); 
}
else if($rowVara4['vara4'] =='')
{
mysql_query("UPDATE history SET vara4='Vara 4',descricao4='Descricao 4' WHERE email='".$_SESSION['email']."' "); 
}
else
{
echo "<script type='text/javascript'>alert('Seu histórico está cheio!');</script>";
}
}


if($task == "save")
{
echo salvaVara();


}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq n usa um while na sua consulta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando mais de um while por que são várias colunas. No início faço os selects pra ver quais colunas tem conteúdo e depois o while de cada campo.

 

 

O loop infinito estava na função listaVaras, simplifiquei o código e agora está rodando. O único problema, que permanece, é que o while está dando echo nas colunas da tabela que estão vázias, quando na verdade só deveria dar echo quando houvesse conteúdo.

 

 

 

Está assim agora:

 

 

 

////////// LISTAR //////////


function listaVaras()
{
     if($_SESSION['email'])
     {
          $queryEmail = mysql_query("SELECT email FROM history WHERE email='".$_SESSION['email']."'");
          if(mysql_num_rows($queryEmail)!=0)
          {
          $queryVara1 = mysql_query("SELECT vara1, descricao1 FROM history WHERE email='".$_SESSION['email']."'");
          $queryVara2 = mysql_query("SELECT vara2, descricao2 FROM history WHERE email='".$_SESSION['email']."'");
          $queryVara3 = mysql_query("SELECT vara3, descricao3 FROM history WHERE email='".$_SESSION['email']."'");
          $queryVara4 = mysql_query("SELECT vara4, descricao4 FROM history WHERE email='".$_SESSION['email']."'");


                    if($queryVara1 || $queryVara2 || $queryVara3 || $queryVara4)
                    {
                    while(($row = mysql_fetch_assoc($queryVara1)))
                    {
                        echo "<div class='rodname'>" . $row['vara1'] . "</div>" . "<div class='details'>" . $row['descricao1'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
                    }
                    while(($row = mysql_fetch_assoc($queryVara2)))
                    {
                        echo "<div class='rodname'>" . $row['vara2'] . "</div>" . "<div class='details'>" . $row['descricao2'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
                     }
                    while(($row = mysql_fetch_assoc($queryVara3)))
                    {
                        echo "<div class='rodname'>" . $row['vara3'] . "</div>" . "<div class='details'>" . $row['descricao3'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
                    }
                    while(($row = mysql_fetch_assoc($queryVara4)))
                    {
                         echo "<div class='rodname'>" . $row['vara4'] . "</div>" . "<div class='details'>" . $row['descricao4'] . "</div><button class='removerod'>X</button><button class='budget'>$</button>";
                     }
               } 


          }


     }
}


////////// LISTAR //////////

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui o resultado que queria. Foi só usar o filtro <> no select que funcionou.

 

 


$queryVara1 = mysql_query("SELECT vara1, descricao1 FROM history WHERE (vara1 <> '' email='".$_SESSION['email']."') ");

 

Muito obrigado pela atenção pessoal, graças à vocês tenho aprendido muito mais rápido.

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.