Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigodomingues

[Resolvido] Como fazer um if se o campo nao vier nada, nem setar

Recommended Posts

eu tentei mas não esta rolando.

 

se o campo $variavel, vier em branco não incluir ele na instrução SQL.

 

se o campo vier null ele nem entra no update que estou fazendo.

 

eu tentei dessa forma

if ($variavel == Null ){
	$variavel = break;
}
else{
	$variavel = continue;
}

 

Não posso fazer dessa forma?

 

Obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

 

o que você pode tentar fazer é o seguinte:

 

<?php
if (strlen($variavel) == 0) {
$instrucao = '';
} else {
$instrucao = "variavel='$variavel'"; // para o campo update
}
$sql = mysql_query("UPDATE tabela SET $instrucao WHERE...");
?>
fazendo dessa forma eli soh será incluido no seu sql se tiver algum valor...

 

qualquer duvida posta aew...

abraços

 

Diego Machado

Compartilhar este post


Link para o post
Compartilhar em outros sites

dsmachado,

 

da maneira que postou, a intrução do mysql será executada independente do que acontecer no if(). Isso é ruim, porque provavelmente irá gerar um erro, alem de executar uma função sem necessidade.

 

Rodrigo, dê uma lida neste artigo do Thiago Belem: http://blog.thiagobelem.net/php/2009/12/30/apredendo-a-usar-as-funcoes-empty-e-isset-662/

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

// Recebe um campo de um formulário

$variavel = $_POST['nome'];

 

// Verifica se o usuário digitou o seu nome

if (empty($variavel))

{

echo"<script>alert('campo vazio');</acript>";

echo"<script>history.back();</acript>";

echo"<script>exit();</acript>";

exit();

}

else

{

$sql = mysql_query("UPDATE tabela SET variavel='$variavel' WHERE...") or die(mysql_error());

 

}

 

ou

 

if(isset($variavel))

{

$sql = mysql_query("UPDATE tabela SET variavel='$variavel' WHERE...") or die(mysql_error());

}

 

 

bom não entendi direito tua logica mas se tu quiser inserir o campo em branco faça assim

 

if (empty($variavel))

{

$sql = mysql_query("UPDATE tabela SET variavel='NULL' WHERE...") or die(mysql_error());

}

else

{

$sql = mysql_query("UPDATE tabela SET variavel='$variavel' WHERE...") or die(mysql_error());

}

 

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado dsmachado e Andre.

vou ler esse artigo agora.

 

esta funcionando o update, mas quando o campo vem null da pau. quando nao ta beleza.

 

por isso quando ele for null, ele nem entraria no update.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado ozorio silva, vou tentar fazer

 

sao 2 campos date. data inicial e terminial, sendo que a terminal pode ser null. quando vou alterar ele da erro de update (quando esta null) quando esta preenchido funciona normal, com a função update ok. o problema é quando vem null.

Compartilhar este post


Link para o post
Compartilhar em outros sites
if ( !empty( $variavel ) ){
$variavel = addslashes( $variavel );
mysql_query( "UPDATE tabela SET variavel='$variavel' WHERE...");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

uso postgre, não muda muita coisa estou certo?

 

Muda a função, troque de mysq_query para pg_query().

 

if ( !empty( $variavel ) ){
	$variavel = addslashes( $variavel );
	pg_query( "UPDATE tabela SET variavel='$variavel' WHERE...");
}

 

@Rodrigodomingues,

 

Quando postar alguma dúvida no fórum, o faça por completo, isso facilita na hora de lhe indicar um caminho e evita que alguém tenha que adivinhar com o que você está trabalhando.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado João Batista.

Então vamos la.

Uso MVC aqui, com postgre

 

eu gostaria de um IF, para separar o $validadeTermino, se ele vier null nem entra no update. senao ele entra.

colacar um if se nao vier nada no campo nem setar ele no sql,(campo validade_termino).

 

// pegando dados do formulario 
$id = $_POST['id'];
$nome = trim(strtoupper( $_POST['nome']));
$tipo = trim(strtoupper( $_POST['tipo_credito']));
$validadeInicio = trim(strtoupper( $_POST['validade_inicio']));
$validadeTermino = trim(strtoupper( $_POST['validade_termino']));
$habilitacao = trim(strtoupper( $_POST['hablitacao']));
$assinatura = trim(strtoupper( $_POST['assinatura']));
$mudanca_endereco = trim(strtoupper( $_POST['mudanca_endereco']));


//abrindo conexao com o banco
Database::open();

// funçao que o Jao Batista passou
if ( !empty( $validadeTermino ) ){
$validadeTermino = addslashes( $validadeTermino );

//fazendo alteração no banco de dados
$sqlAltera = "UPDATE tbl_plano
			SET	nome = '".$nome."',
		 	tipo_linha = '".$tipo."',
			 	validade_inicio ='".$validadeInicio."',
				validade_termino = '".$validadeTermino."',
		 	habilitacao =".$habilitacao.",
		 	assinatura = ".$assinatura.",
		 	mudanca_endereco = ".$mudanca_endereco." 
		 WHERE id = $id";



// tratando caso aja algum erro.
$query = pg_query($sqlAltera) or die(Evento::trataErro($error." - SQL:".$sqlAltera));
}
//Fechando conexao com o banco
Database::close();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, e funcionou ?

 

Apresenta algum erro ?

 

EDIT: Você está passando como primeiro argumento a string SQL, mas a função pg_query espera o recurso da conexão:

resource pg_query ( resource $connection , string $query )

 

Veja o link que passei anteriormente para usar a função pg_query

Compartilhar este post


Link para o post
Compartilhar em outros sites


if( empty($validadeTermino) )

$sqlAltera = "UPDATE tbl_plano

SET nome = '".$nome."',

tipo_linha = '".$tipo."',

validade_inicio ='".$validadeInicio."',

habilitacao =".$habilitacao.",

assinatura = ".$assinatura.",

mudanca_endereco = ".$mudanca_endereco."

WHERE id = $id";

else

$sqlAltera = "UPDATE tbl_plano

SET nome = '".$nome."',

tipo_linha = '".$tipo."',

validade_inicio ='".$validadeInicio."',

validade_termino = '".$validadeTermino."',

habilitacao =".$habilitacao.",

assinatura = ".$assinatura.",

mudanca_endereco = ".$mudanca_endereco."

WHERE id = $id";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão, se você não nos ajudar a te ajudar fica difícil...

 

Qual a mensagem de erro que está dando ???

 

Não temos condições de adivinhar o erro que você está recebendo, cada informação que você omite, mais você dificulta as coisas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho essa função no Js. com uma validaçao de campos, com no nome do campo, required = true.

 

 

com a funçoes que me passaram esta caindo na msg Ocorreu um erro ao alterar o Plano.<br>Entre em contato com o suporte.<br><br>

 

function response_product_alterar(data){
 
 var mensagem;
 if (data) {
 //$("form").resetForm();
 //$('#mensagem').remove();
 mensagem = data;
 }
 else {
 mensagem = 'Ocorreu um erro ao alterar o Plano.
Entre em contato com o suporte.

'+data;
 }

 $("#mensagem").html(mensagem);


	$('<div id="mensagem">' + mensagem + '</div>').hide().insertAfter('#mudanca_endereco').fadeIn('slow');

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara coloca assim oh

 

esse jeito é quando a variável não tem valor nenhum

só que não sei o que você quer que ela retorne. se voce que que ela retorne TRUE ou FALSE, 0 ou 1, ou só uma string normal.

especifica ae depois.

$var = $_POST['oquevocequizer1'];

 if(!isset($_POST['oquevocequizer'])) 
         {
	   $_POST['oquevocequizer'] = "algum_valor_padrão";

	 }
else {
$sql = mysql_quer...

olha só, sem dizer nada. mas porque voce não envia todo código pra analisar melhor?

abraço

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.