Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
Tentei usando IS NULL direto no banco e não retornou nada.
Verificando por valor em branco ele retorna a coluna, mas, não sei como verificar isso num IF.
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...
SELECT valor2 FROM tabela WHERE vara2 IS NULL OR vara2 = '' AND email = 'email'
se não der certo, tente explicar melhor sua duvida
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']."'");$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'] !='')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'] !='')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'] !='')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'] !='')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']."'");$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']."' ");
}echo "<script type='text/javascript'>alert('Seu histórico está cheio!');</script>";
}
}
if($task == "save")echo salvaVara();
}pq n usa um while na sua consulta?
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 //////////
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.
tentou rodar a consulta direto no banco?
tem certeza q é null, não valor em branco ''?