Ir para conteúdo

Arquivado

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

DinhoPHP

Preciso de um loop?

Recommended Posts

Olá!

Tenho uma página que exibe vários imóveis e em cada um deles há um coração preenchido que ao ser clicado, adiciona o imóvel em favoritos. Eu gostaria que esse coração (que é o único button deste código) exibisse a imagem de um coração vazio quando o imóvel não estivesse em favorito. Tentei com foreach e while, mas parece só ter funcionado no meu navegador, pois depois que limpei o cache, não aparecia coração nenhum, como nos demais PCs que testei.

 

VEJA A PÁGINA PARA ENTENDER

 

OBS.: ESSES FAVORITOS SÃO ARMAZENADOS EM SESSION, E JÁ É UM SISTEMA EXISTENTE NO SITE, NÃO DESENVOLVI.

<div style="display:none;height:36px;" class="tips"><?=__FILE__?></div>
<?php

   /* Todos os anúncios em destaque e ativos com limite pré determinado no vipmin, é exibido na home. */
   $ordem =  'rand()';
   
   $sql = "select * from team where  ehdestaque = 'Y' and (status is null or status = 1) and (pago = 'sim' or anunciogratis = 's') and begin_time < '".time()."' and end_time > '".time()."' order by $ordem limit ".$INI['system']['qtde_anuncios_destaque_home'];
   $rs = mysql_query($sql);
?>
<div style="text-align:center;clear:both;"><h1><?=utf8_decode($INI['system']['txt2'])?></h1></div>

<div class="row-fluid">
    <ul class="thumbnails">
      <?php 

         while($anuncio = mysql_fetch_assoc($rs)) {

            unset($vagas);
            unset ($quartos);

            /* Caso não tenha nenhuma imagem em destaque. */
            //if(empty($anuncio["imgdestaque"])) {
               //$anuncio["imgdestaque"] = $PATHSKIN . "/images/semfoto.jpg";
            //}

            /* Informações como cidade, estado e bairro são buscados para ser impresso. */
            $sqlC = "select nome from cidades where id = " . $anuncio["city_id"];
            $rsC = mysql_query($sqlC);
            $cidade = mysql_fetch_assoc($rsC);

            if(!(empty($anuncio["imob_estado"])) && !(empty($cidade["nome"]))) {

               $localizacao = $anuncio["imob_estado"] . " - " . $cidade["nome"];
            }

            if(!(empty($anuncio["imob_tipo"]))) {

               $sqlT = "select nome from tipoimoveis where id = '" . $anuncio["imob_tipo"] . "'";
               $rsT = mysql_query($sqlT);
               $tipo = mysql_fetch_assoc($rsT);
            }
            else {
               $bairro = utf8_decode("Bairro não informado.");
            }

            /* Número de vagas e de quartos são exibidos juntamente com o thumb do anúncio. */
            if(!(empty($anuncio["imob_vagas"]))) {
               $vagas = "Total de vagas: " . $anuncio["imob_vagas"];
            }

            if(!(empty($anuncio["imob_quartos"]))) {
               $quartos = "Total de quartos: " . $anuncio["imob_quartos"];
            }

            $url = UrlAnuncio($anuncio["id"]);
      ?>
      <li style="background-color:#fff;" class="span3">
         <a href="<?php echo $url; ?>">
            <div style="background: #FFFFFF; opacity: 0.7; position: absolute; margin: 124px 0px 0px 5px; color:#000; letter-spacing: 0px; padding: 5px; line-height: 15px; font-size: 12px;font-weight: bold; width: 202px; height: 30px;">
               <?php echo utf8_decode($anuncio["title"]);?>
            </div>
         </a>
         <div class="thumbnail">

                <?php
                /* ÁREA RESPONSÁVEL POR DISTINGUIR OS IMÓVEIS INSERIDOS OU NÃO EM FAVORITOS */
                foreach($_SESSION["IdAnuncio"] as $IdAnuncio => $idOffer) {

                $sql = "select * from team where id = " . $idOffer;
                $busca = mysql_query($sql);

                /* Imprime os anúncios, de acordo com o que se encontra armazenado na sessão. */
                while($anuncios = mysql_fetch_assoc($busca)) {

                if ($anuncio["image"] == $anuncios["image"]){
                $heart = "heart_full.png";
                } else{
                $heart = "heart_empty.png";
                }

                ?>
                //ESSE BUTTON SÓ DEVE TER O HEART_FUL.PNG SE ELE VÊ QUE O IMÓVEL ESTÁ EM FAVORITOS
                <button data-id="<?php echo $anuncio["id"]; ?>" class="btn btn-favorito" style="position: absolute; background: transparent; border: none; box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; margin-left: 170px; /*top: 88px;*/"><img src="<?php echo $PATHSKIN . "/images/".$heart;?>" style="width: 20px; height: auto;"></button>
                <?php }} ?>
            <a href="<?php echo $url; ?>">
               <img src="<?php echo $ROOTPATH; ?>/media/<?php echo $anuncio["image"]; ?>" style="width: 212px; height: 159px;" alt="221x159" data-src="holder.js/221x159">                <!-- <img src="<?php echo $ROOTPATH; ?>/media/<?php echo $anuncio["imgdestaque"]; ?>" style="width: 212px; height: 159px;" alt="221x159" data-src="holder.js/221x159"> -->
            </a>
         <div class="caption">
         <div id="loc_364" class="textoLanc02">
            <?php echo $localizacao; ?>
         </div>
         <div class="textoLanc03">
            <?php echo utf8_decode("Imóvel: " . $tipo["nome"]); ?>
         </div>
         <div class="textoLanc04">
            <ul>
               <li class="Residencial Parc Mantova " id="nomeEmpreendimento_364">
                  <?php echo $quartos; ?>
               </li>
               <li>
                  <?php echo $vagas; ?>
               </li>
            </ul>
         </div>
         <div style="height:10px;"></div>
         <a href="<?php echo $url; ?>">
            <div id="364" class="btn btn-netimoveis detalheEmpreendimento--">
            <i class="icon-list icon-white"></i> ver detalhe</div>
         </a>
         </div>
      </li>
      <?php } ?>
    </ul>
</div>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você está cometendo o problema xy

 

Não consigo localizar a relação entre o loop (pergunta) e qual é realmente o problema que está enfrentando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu preciso que a condição abaixo, seja executada de acordo se o imóvel consta ou não em favoritos. Se consta, heart_full, se não heart_empty. Compreendido?

if ($anuncio["image"] == $anuncios["image"]){
                $heart = "heart_full.png";
                } else{
                $heart = "heart_empty.png";
                }

                ?>
                //ESSE BUTTON SÓ DEVE TER O HEART_FUL.PNG SE ELE VÊ QUE O IMÓVEL ESTÁ EM FAVORITOS
                <button data-id="<?php echo $anuncio["id"]; ?>" class="btn btn-favorito" style="position: absolute; background: transparent; border: none; box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; margin-left: 170px; /*top: 88px;*/"><img src="<?php echo $PATHSKIN . "/images/".$heart;?>" style="width: 20px; height: auto;"></button>
                <?php }} ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa. Só usar a seguinte linha:

$anuncios = mysql_fetch_assoc($busca);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fechei o foreach aqui, e agora não exibe as imagens dos imóveis e nem os button

 

//ESSE BUTTON SÓ DEVE TER O HEART_FUL.PNG SE ELE VÊ QUE O IMÓVEL ESTÁ EM FAVORITOS
                <button data-id="<?php echo $anuncio["id"]; ?>" class="btn btn-favorito" style="position: absolute; background: transparent; border: none; box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; margin-left: 170px; /*top: 88px;*/"><img src="<?php echo $PATHSKIN . "/images/".$heart;?>" style="width: 20px; height: auto;"></button>
                <?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código como abaixo, só mostra o resultado satisfatório no meu PC e no Chrome.

 

<?php

            echo "<h2>".$_SESSION["IdAnuncio"]."</h2>";
            // ÁREA RESPONSÁVEL POR DISTINGUIR OS IMÓVEIS INSERIDOS OU NÃO EM FAVORITOS
            foreach($_SESSION["IdAnuncio"] as $IdAnuncio => $idOffer) {

            $sql = "select * from team where id = " . $idOffer;
            $busca = mysql_query($sql);

            // Imprime os anúncios, de acordo com o que se encontra armazenado na sessão.
            while($anuncios = mysql_fetch_assoc($busca)) {

            if ($anuncio["id"] === $anuncios["id"]){


            ?>
            <button data-id="<?php echo $anuncio["id"]; ?>" class="btn btn-favorito" style="position: absolute; background: transparent; border: none; box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; margin-left: 170px; /*top: 88px;*/"><img src="<?php echo $PATHSKIN . "/images/heart_full.png";?>" style="width: 20px; height: auto;"></button>
            <?php } else {?>
            <button data-id="<?php echo $anuncio["id"]; ?>" class="btn btn-favorito" style="position: absolute; background: transparent; border: none; box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; margin-left: 170px; /*top: 88px;*/"><img src="<?php echo $PATHSKIN . "/images/heart_empty.png";?>" style="width: 20px; height: auto;"></button> <?php }}};?>
<a href="<?php echo $url; ?>">
   <img src="<?php echo $ROOTPATH; ?>/media/<?php echo $anuncio["image"]; ?>" style="width: 212px; height: 159px;" alt="221x159" data-src="holder.js/221x159">                <!-- <img src="<?php echo $ROOTPATH; ?>/media/<?php echo $anuncio["imgdestaque"]; ?>" style="width: 212px; height: 159px;" alt="221x159" data-src="holder.js/221x159"> -->
</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.