Ir para conteúdo

POWERED BY:

Arquivado

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

Robson Barros da Rocha

Definir para aparecer só se tiver algo escrito

Recommended Posts

Olá pessoal e boa tarde.

 

Eu fiz um PHP que funciona bem como eu quero, porém, ele na verdade exibe o que eu escrevo na área do Admin. Tudo bem até aí. Como ele é só um SELECT para mostrar o que está naquela coluna, as vezes eu deixo o campo vazio, e na página eu queria que os elementos sumissem.

 

Ou seja:

<?php
// conecta-se ao banco de dados
	$select_database = mysql_select_db($sql["base"], $connection) or die(mysql_error());
	
	$sql = mysql_query("SELECT * FROM `msg_home` WHERE id='1' ");

	while($exibe = mysql_fetch_assoc($sql)){
	?>
<div id="dHome">
	<div class="row1">
		<div class="contentH">
			<?php echo $exibe['homepage']; ?>
		</div>
	</div>
</div>
						
	<?php
	}
	?>

Ou seja, a condição que gostaria de ajuda é a seguinte:

 

Se em homepage estiver escrito, então ele será mostrado. Se não estiver, ele será ocultado.

Eu entendo que poderia usar o comando IF e Else, mas, o detalhe é que, eu queria esse mesmo comando do IF e ELSE para quando tiver algo escrito dentro do conteúdo homepage ele mostrar automaticamente o PHP na página que eu colocar este código acima. Se não tiver nada no homepage, então o PHP não mostra nem o HTML em volta do PHP. Entenderam?

 

O detalhe é que não sei como fazer, e por isso recorri à vocês.

 

Fico grato pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez algo desse tipo

echo (($exibe['homepage'] != "") ? $exibe['homepage'] : '');

isso é um if resumido. o primeiro parêntese seria o "if", a interrogação seria o "então" e os dois pontos seria o "caso contrário".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só usar empty().

 

Tem duas maneiras:

 

1) Condição ternária

echo $(!empty($exibe['homepage'])) ? $exibe['homepage'] : '';

2) Condição modelo-padrão

if(!empty($exibe['homepage'])){
    echo $exibe['homepage'];
}

Ambos terão o mesmo resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi bem, mas você não quer listar as divs também, certo? Se for isso, você poderia fazer assim:

IF(!empty($exibe['homepage'])) {
echo "<div id=\"dHome\">
<div class=\"row1\">
<div class=\"contentH\">
".$exibe['homepage']." 
</div>
</div>
</div>"
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez algo desse tipo

echo (($exibe['homepage'] != "") ? $exibe['homepage'] : '');

isso é um if resumido. o primeiro parêntese seria o "if", a interrogação seria o "então" e os dois pontos seria o "caso contrário".

Só usar empty().

 

Tem duas maneiras:

 

1) Condição ternária

echo $(!empty($exibe['homepage'])) ? $exibe['homepage'] : '';

2) Condição modelo-padrão

if(!empty($exibe['homepage'])){
    echo $exibe['homepage'];
}

Ambos terão o mesmo resultado

Obrigado meu amigo. Assim como o Maykey, o seu também teve o mesmo resultado. :) Sobre o uso das aspas com o termo "Então", eu não sabia que podíamos fazer isso no PHP. Teria alguma biblioteca que você poderia me aconselhar? Tipo, algum artigo que mostre em detalhes ou, mais informações sobre o uso dessa condição? :D Obrigado!

 

 

 

Não sei se entendi bem, mas você não quer listar as divs também, certo? Se for isso, você poderia fazer assim:

IF(!empty($exibe['homepage'])) {
echo "<div id=\"dHome\">
<div class=\"row1\">
<div class=\"contentH\">
".$exibe['homepage']." 
</div>
</div>
</div>"
}

 

Leo_Mix, não descartando a ajuda dos nossos dois companheiros, é exatamente isso! Porém, eu fiz uma aplicação teste local e recebi um erro. Não consigo entendê-lo, mas, acho que há um erro de fechamento ou de encerramento de chaves.

 

Obrigado à todos!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ora bolas... Leo, funcionou sim. Porém, se eu salvar sem o conteúdo como bem disse, o HTML ainda aparece. Eu acho que o empty não está querendo esconder o HTML também kkkkk.

 

Será que eu teria que incluir tudo dentro do empty para funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opâ! Sim:

<?php 
if(!empty($exibe['homepage'])) {
echo "<div id=\"dHome\">
<div class=\"introduction row1\">
<div class=\"contentH\">
".$exibe['homepage']." 
</div>
</div>
</div>";
}
?>

Neste caso, seria todos os elementos HTML. Se por a caso não houver nada no homepage, então, tudo some! :)

 

Obrigado novamente querido amigo. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você não removeu as divs do código anterior, vê se o seu código está assim:

<?php
// conecta-se ao banco de dados
	$select_database = mysql_select_db($sql["base"], $connection) or die(mysql_error());
	
	$sql = mysql_query("SELECT * FROM `msg_home` WHERE id='1' ");

	while($exibe = mysql_fetch_assoc($sql)){

    if(!empty($exibe['homepage'])) {
    echo "<div id=\"dHome\">
    <div class=\"introduction row1\">
    <div class=\"contentH\">
    ".$exibe['homepage']." 
    </div>
    </div>
    </div>";
     }  
	    }
	?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade estava correto desde o início meu amigo. Obrigado. O erro é que eu, deixei o script do editor "WYSYNG" ativado, e mesmo retirando o código de dentro, ainda sobrava uma tag <br> que ficava oculta.

 

Resumindo, o PHP me chamo de bobo porque mesmo sendo BR ainda tem algo escrito kkkkkkk

 

Obrigado, a dúvida está sanada!

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.