Jump to content
rafa-40

If() , elsefi() não aceita condições em ordem aleatória.

Recommended Posts

Boa Noite,

 

Meu 1º tópco aqui no forum e preciso de uma orientação.
Estou montando painel e vai ter opção de redes sociais, até ai tudo bem...

 

O problema que estou tendo é na hora de exibir os icones das redes usando a função if, elseif.
A ideia é exibir somente as redes que tiverem com a url.

Se for na sequencia funciona, mas se precisar fazer  função if, elseif em sequencia aleatória não o php inginora.

 

Vou postar o código para que possa entender melhor.

<?php 
	$face = "http://www.face.com.br";
	$inst = "http://www.inst.com.br";
	$tw   = "";
	$pint = "";

	$redes = array();
	$redes[] = $face;
	$redes[] = $inst;
	$redes[] = $tw;
	$redes[] = $pint;
?>

	<ul class="navbar-nav nav-flex-icons">
		<?php 
			if(($redes[0] = $redes[0]) && ($redes[1] = $redes[1]) && ($redes[2] = $redes[2]) && ($redes[3] = $redes[3])){ 
		?>

			<li class="nav-item">
				<a href="<?php echo $redes[0]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-facebook-f"></i>
				</a>
			</li>
								
			<li class="nav-item">
				<a href="<?php echo $redes[1]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-instagram"></i>
				</a>
			</li>
					
			<li class="nav-item">
				<a href="<?php echo $redes[2]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-twitter"></i>
				</a>
			</li>			
					
			<li class="nav-item">
				<a href="<?php echo $redes[3]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-pinterest"></i>
				</a>
			</li>		

		<?php 
			}elseif(($redes[1] = $redes[1]) && ($redes[2] = $redes[2]) && ($redes[3] = $redes[3])){ 
		?>

			<li class="nav-item">
				<a href="<?php echo $redes[1]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-instagram"></i>
				</a>
			</li>
					
			<li class="nav-item">
				<a href="<?php echo $redes[2]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-twitter"></i>
				</a>
			</li>			
					
			<li class="nav-item">
				<a href="<?php echo $redes[3]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-pinterest"></i>
				</a>
			</li>	
		<?php 
				}elseif($redes[0] = $redes[0] && $redes[1] = $redes[1]){ 
		?>
		
			<li class="nav-item">
				<a href="<?php echo $redes[0]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-facebook-f"></i>
				</a>
			</li>
			
			<li class="nav-item">
				<a href="<?php echo $redes[1]; ?>" class="nav-link" target="_blank">
					<i class="fab fa-instagram"></i>
				</a>
			</li>
		
		<?php 
			}else{
				echo "<h4 class='mb-3 font-weight-bold dark-grey-text'>Não há Redes Cadastradas!</h4>";
			} 
		?>
	</ul>

Agradeço desde já pela ajuda...

Share this post


Link to post
Share on other sites

Boa noite

Brother seguinte pelo que entendi do seu código acho que vai precisar criar um foreach para percorrer o array e checar se as células tem algo dentro

por exemplo

==========================================

foreach ($redes as &$value) {
    if(
$value !="")

{

<li class="nav-item">
				<a href="<?php echo $value; ?>" class="nav-link" target="_blank">
					<i class="fab fa-twitter"></i>
				</a>
			</li>

}
}

==========================================

acho que deve ser algo próximo disso que você precisa.

Share this post


Link to post
Share on other sites

Boa Trade, Imp2

 

Agradeço pela orientação, mas ainda não deu certo...

A ideia é aparecer apenas o icone da rede com url.

 

Agradeço pela ajuda. 

Share this post


Link to post
Share on other sites

Bom dia,

Refiz o código deixando mais fácil de entender e não usando o array.

Coloquei uma condição }elseif ($i !="" && $p !="") { fora da sequedncia pelo fato que vai ter pessoas que não vai ter todas as redes.

Veja o código abaixo, estou tento o mesmo problema.
 

<?php 	
	$f = "";
	$i = "http://www.inst.com.br";
	$t = "http://www.tw.com.br";
	$p = "http://www.pint.com.br";	
?>

<ul class="navbar-nav nav-flex-icons">
		<?php  
			if($f !="" && $i !="" && $t !="" && $p !=""){
		?>
		<li class="nav-item">
			<a href="<?php echo $f; ?>" class="nav-link" target="_blank">
				<i class="fab fa-facebook-f"></i>
			</a>
		</li>
								
		<li class="nav-item">
			<a href="<?php echo $i; ?>" class="nav-link" target="_blank">
				<i class="fab fa-instagram"></i>
			</a>
		</li>
				
		<li class="nav-item">
			<a href="<?php echo $t; ?>" class="nav-link" target="_blank">
				<i class="fab fa-twitter"></i>
			</a>
		</li>			
				
		<li class="nav-item">
			<a href="<?php echo $p; ?>" class="nav-link" target="_blank">
				<i class="fab fa-pinterest"></i>
			</a>
		</li>

		<?php 
			}elseif ($i !="" && $p !="") {				
		?>
		<li class="nav-item">
			<a href="<?php echo $i; ?>" class="nav-link" target="_blank">
				<i class="fab fa-instagram"></i>
			</a>
		</li>				
				
		<li class="nav-item">
			<a href="<?php echo $p; ?>" class="nav-link" target="_blank">
				<i class="fab fa-pinterest"></i>
			</a>
		</li>
		
		<?php 
			}elseif ($i !="" && $t !="" && $p !="") {				
		?>
		<li class="nav-item">
			<a href="<?php echo $i; ?>" class="nav-link" target="_blank">
				<i class="fab fa-instagram"></i>
			</a>
		</li>
				
		<li class="nav-item">
			<a href="<?php echo $t; ?>" class="nav-link" target="_blank">
				<i class="fab fa-twitter"></i>
			</a>
		</li>			
				
		<li class="nav-item">
			<a href="<?php echo $p; ?>" class="nav-link" target="_blank">
				<i class="fab fa-pinterest"></i>
			</a>
		</li>
		<?php 
			}else{
				echo "<h4 class='mb-3 font-weight-bold dark-grey-text'>Não há Registro!</h4>";
			}
		?>
	</ul>

Desde já obrigado

Share this post


Link to post
Share on other sites

Boa Noite,

Vim agradecer pela ajuda, consegui resolver sobre a verificação de redes social com if , elseif.

A solução foi não usar o array e na hora de fazer a função de verificação com  if , elseif colocar na sequencia correta.

 

Agradeço pela força..

Share this post


Link to post
Share on other sites

@rafa-40

 

Sei que as pessoas quando estão iniciando querem complicar coisas faceis, por este motivo o que é algo simples se torna um bicho de sete cabeças.

 

Bom, para deixar o seu código um pouco mais fácil para uma manutenção possivelmente futura, eu recomendo você a usar o código da seguinte forma, sem IF e ELSEIF.

 

Se você tem 4 campos a ser validado, basta separar as perguntas (IF) se preenchido exibe senão não exibe, simples.

 

Assim:

<?php 	
	$f = "";
	$i = "http://www.inst.com.br";
	$t = "http://www.tw.com.br";
	$p = "http://www.pint.com.br";	
?>

<ul class="navbar-nav nav-flex-icons">
    <?php if($f !="") { ?>
    <li class="nav-item">
        <a href="<?php echo $f; ?>" class="nav-link" target="_blank">
            <i class="fab fa-facebook-f"></i>
        </a>
    </li>
    <?php } ?>

    <?php if ($i !="") { ?>
    <li class="nav-item">
        <a href="<?php echo $i; ?>" class="nav-link" target="_blank">
            <i class="fab fa-instagram"></i>
        </a>
    </li>
    <?php } ?>

    <?php if($t !="") { ?>
    <li class="nav-item">
        <a href="<?php echo $t; ?>" class="nav-link" target="_blank">
            <i class="fab fa-twitter"></i>
        </a>
    </li>	
    <?php } ?>

    <?php if($p !="") { ?>
    <li class="nav-item">
        <a href="<?php echo $p; ?>" class="nav-link" target="_blank">
            <i class="fab fa-pinterest"></i>
        </a>
    </li>
    <?php } ?>
</ul>

Se o que você quer é exibir os ICONES de acordo com a URL preenchida o código acima deve lhe atender.

 

Espero ter ajudado.

 

Att.

Felipe Coutinho

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Marcos Anibal Lemes
      Essa rotina funcionava perfeitamente, depois que atualizei o código para mysqli_fetch_assoc não funciona mais, o código conta todos as linhas do BD, mas só pega o primeiro usúario referenciado pelo e-mail, as outras linhas  ele não pega o e-mail e grava os dados do primeiro usuário no BD. Resumindo o código não está associando os dados dos outros e-mails..

          $usuarios = mysql_query("SELECT * FROM $t_cartao");
          $contar = mysql_num_rows($usuarios);
          for($b=0; $b<$contar; $b++){
          $resEmail = mysql_fetch_assoc($usuarios);
          $email = $resEmail['email'];
          $sql = mysql_query("SELECT * FROM $t_cartao WHERE email = '$email'");
          while($rs = mysql_fetch_array($sql)){
      ***********************************************************************************
       
        
      Esta não quer funcionar, o código conta todos as linhas do BD, mas só pega o primeiro usúario
      referenciado pelo e-mail, as outras linhas  ele não pega o e-mail e grava os dados do primeiro
      usuário no BD. Resumindo o código não está associando os dados dos outros e-mails..
      <?
          $usuarios = "SELECT * FROM $t_cartao";
          $res = mysqli_query($conexao, $usuarios);
          $contar = mysqli_num_rows($res);
          
          for($b=0; $b<$contar; $b++){
          $resEmail = mysqli_fetch_assoc($res);
          $email = $resEmail['email'];
          
          $sql = "SELECT * FROM $t_cartao WHERE email = '$email'";
          $res = mysqli_query($conexao, $sql);
          while($rs = mysqli_fetch_array($res)){
          
          $nome = $rs['nome'];
          $sexo = $rs['sexo'];
          $serie = $rs['serie'];
          $data_nasc = $rs['datanasc'];
          $data_resp = $rs['data_resp'];
          $rq01 = $rs['rq01'];
          $rq02 = $rs['rq02'];
          $rq03 = $rs['rq03'];
          $rq04 = $rs['rq04'];
          $rq05 = $rs['rq05'];
          $rq06 = $rs['rq06'];
          $rq07 = $rs['rq07'];
          $rq08 = $rs['rq08'];
          $rq09 = $rs['rq09'];
          $rq10 = $rs['rq10'];
          $rq11 = $rs['rq11'];
          $rq12 = $rs['rq12'];
          $rq13 = $rs['rq13'];
          $rq14 = $rs['rq14'];
          $rq15 = $rs['rq15'];
          $rq16 = $rs['rq16'];
          $rq17 = $rs['rq17'];
          $rq18 = $rs['rq18'];
          $rq19 = $rs['rq19'];
          $rq20 = $rs['rq20'];
          }
          
          $sql = "SELECT * FROM $t_gabarito";
          $res = mysqli_query($conexao, $sql);
          while($gq = mysqli_fetch_array($res)){
          
          $data_gabarito = $gq['data_gabarito'];
          $gq01 = $gq['gq01'];
          $gq02 = $gq['gq02'];
          $gq03 = $gq['gq03'];
          $gq04 = $gq['gq04'];
          $gq05 = $gq['gq05'];
          $gq06 = $gq['gq06'];
          $gq07 = $gq['gq07'];
          $gq08 = $gq['gq08'];
          $gq09 = $gq['gq09'];
          $gq10 = $gq['gq10'];
          $gq11 = $gq['gq11'];
          $gq12 = $gq['gq12'];
          $gq13 = $gq['gq13'];
          $gq14 = $gq['gq14'];
          $gq15 = $gq['gq15'];
          $gq16 = $gq['gq16'];
          $gq17 = $gq['gq17'];
          $gq18 = $gq['gq18'];
          $gq19 = $gq['gq19'];
          $gq20 = $gq['gq20'];
          
          }
          
          $pontos = 0;
          $erros = 0;
          
          if($rq01 == $gq01){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq02 == $gq02){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq03 == $gq03){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq04 == $gq04){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq05 == $gq05){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq06 == $gq06){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq07 == $gq07){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq08 == $gq08){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq09 == $gq09){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq10 == $gq10){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq11 == $gq11){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq12 == $gq12){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq13 == $gq13){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq14 == $gq14){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq15 == $gq15){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq16 == $gq16){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq17 == $gq17){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq18 == $gq18){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq19 == $gq19){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          if($rq20 == $gq20){
          $pontos = $pontos + 1;
          }else{
          $erros = $erros + 1;
          }
          
          $pontos = $pontos;
          $erros = $erros;
          
          $sql_grav = $conexao->query("INSERT INTO $t_pontuacao (email, data_resp, pontos, erros,
      serie, sexo, nome, datanasc) VALUES ('$email', '$data_resp', '$pontos', '$erros', '$serie', '$sexo',
      '$nome', '$data_nasc')");
          
      }
    • By asacap1000
      Salve galera. estou com uma zica aqui e não vai.
      Tenho um servidor WEB final IP final 120 neste servidor eu acesso um banco de dados de outro servidor 122, tem uma tabela com fotos e precisaria mostrar estas fotos na intranet. porém ele me mostra o caminho mas não mostra a imagem.
       
      Na Tabela está sendo salvo desta forma:
      Z:/Avarias/FOTOS/Alfandegado/2020/01.%20JANEIRO/14.01.2020/AVARIA%20CLIENTE%20CN=%20191234%20(2).JPG
       
      Chamei ele na tela desta forma:
      <?php ociexecute($stmt2,OCI_DEFAULT); while ($row = oci_fetch_object($stmt2)) { $string = OCIResult ($stmt2 ,1); ///link da avaria $avaria = OCIResult ($stmt2 ,2); ///titulo da avaria ?> <a href="<?=$string ?>" width="20%" height="30%" data-lightbox="gallery" > <button type="button" class="btn btn-dark active" data-toggle="modal" data-target="#modalExemplo"> <img src="<?=$string?>" width="160" height="100" class="rounded" title="<?=$avaria?>"> <br> </button> Na tela aparece desta forma:

       
      Se eu clicar na imagem fica assim apenas carregando:
       

       
      Se eu mandar abrir em nova guia a imagem aparece essa mensagem:

      Se eu copiar o link com botão direito e abrir no navegador ela abre normalmente.
       
      Ah lembrando que são tres servidores 120 web, 122 banco de dados, 128 as fotos onde salva como mapeamento Z://
      Alguem teria alguma idéia de como chamar estas fotos???
       
    • By Rafaelmcd
      Pessoal, eu tenho uma DIV, que por padrão ela vem com este css: 
      <div class="clickoff" style="pointer-events: none;">
      ......
      </div>
      Porém queria que, caso um determinado cookie exista, o style dessa div seja alterado para pointer-events: auto;
      Alguém teria uma dica de como poderia fazer isso? Se possível com PHP. 
       
    • By gramosiri2
      Oi pessoal, estou com um probleminha. Estou tentando gerar um relatório através do PHPJasper (https://github.com/PHPJasper/phpjasper),
      Quando faço o teste de gerar o arquivo de teste hellow_world.jrxml funciona normalmente, porém quando tento gerar um pdf através da conexão com o banco da um erro:
      Fatal error: Uncaught PHPJasper\Exception\ErrorCommandExecutable: Your report has an error and couldn 't be processed!\ Try to output the command using the function `output();` and run it manually in the console. in C:\xampp\htdocs\html2\phpjasper-master\vendor\geekcom\phpjasper\src\PHPJasper.php:235 Stack trace: #0 C:\xampp\htdocs\html2\phpjasper-master\test.php(33): PHPJasper\PHPJasper->execute() #1 {main} thrown in C:\xampp\htdocs\html2\phpjasper-master\vendor\geekcom\phpjasper\src\PHPJasper.php on line 235
       
      Segui toda a documentação, videos e etc... Porém não tive êxito, alguém poderia dar um help?
       
      Arquivo de teste SEM conexão com banco (RODANDO OK!)
      <?php require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/hello_world.jrxml'; $output = __DIR__ . '/vendor/geekcom/phpjasper/examples'; $options = [ 'format' => ['pdf', 'rtf'] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute(); $filename = 'hello_world.pdf'; header('Content-Description: application/pdf'); header('Content-Type: application/pdf'); header('Content-Disposition:; filename=' . $filename); readfile($output . '/' . $filename); unlink($output . '/' . $filename); flush(); ?> IMAGEM: 

       
      Arquivo COM conexão com o banco (ERRO)
      <?php require __DIR__ . '/vendor/autoload.php'; use PHPJasper\PHPJasper; ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $input = __DIR__ . '/vendor/geekcom/phpjasper/examples/rel_cliente.jrxml'; $output = __DIR__ . '/vendor/geekcom/phpjasper/examples'; $options = [ 'format' => ['pdf'], 'locale' => 'en', 'params' => [], 'db_connection' => [ 'driver' => 'mysql', //mysql, .... 'username' => 'root', 'password' => '', 'host' => 'localhost', 'database' => 'grsystem', 'port' => '3306' ] ]; $jasper = new PHPJasper; $jasper->process( $input, $output, $options )->execute(); $filename = 'hello_world.pdf'; header('Content-Description: application/pdf'); header('Content-Type: application/pdf'); header('Content-Disposition:; filename=' . $filename); readfile($output . '/' . $filename); unlink($output . '/' . $filename); flush(); ?> IMAGEM:

    • By mamotinho
      Olá pessoal , estou tendo um trabalho em defini a porta na qual eu quero que meu site se conecte. eu alterei a porta utilizada na minha máquina para eu utilizar somente ela no meu site porém quando eu acrescendo o campo da PORT da o seguinte erro.
      Connection Error: SQLSTATE[08001] SQLDriverConnect: 17 [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server inexistente ou acesso negado.  
      O Código de conexão na qual estou utilizando é esse.
       
      class Database { protected static $db; protected $db_host = DB_HOST; protected $db_usuario = DB_USER; protected $db_senha = DB_PASS; private function __construct() { try { self::$db = new PDO("odbc:Driver={SQL Server};Server=".$this->db_host.";port=8657; Uid=$this->db_usuario;Pwd=$this->db_senha; PDO::ATTR_PERSISTENT => true"); self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Connection Error: " . $e->getMessage()); } } public static function conexao() { if (!self::$db) { new Database(); } return self::$db; } } se alguém pude me ajuda ficarei bastante grato.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.