Ir para conteúdo

Arquivado

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

DinhoPHP

[Resolvido] Problemas com While e Foreach

Recommended Posts

Olá!

Tenho uma página de anúncios de imóveis aonde cada uma delas <li> exibe a imagem, características do imóvel e uma img de coração que ao ser clicada o adiciona em favoritos. Mas desejo que o coração preenchido só seja exibido quando este imóvel constar nos favoritos, que é armazenado em sessão; sem que haja multiplicações de imóveis, como acontece atualmente.

 

VEJA AQUI O QUE ACONTECE

 

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

include "bloco_favoritos.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"]);

        /* Caso o $anuncio seja igual a 2, então se trata dos anúncios nos 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)) {

            // PRECISO QUE O HEART FULL SEJA EXIBIDO APENAS QUANDO O IMÓVEL ESTIVER FAVORITADO
            // E QUE NÃO HAJA MULTIPLICAÇÃO DOS MESMOS IMÓVEIS, DIVERSAS VEZES.
            if ($anuncio["image"] == $anuncios["image"]){
                $heart = "heart_full.png";
            } else{
                $heart = "heart_empty.png";
            }
		?>
		<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">


                <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>

				<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>
                <?php
                echo "<h3>".print_r($_SESSION["idfav"])."</h3>";
                ?>
		</li>
		<?php }}} ?>
    </ul>
</div>
</div>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi da seguinte maneira:

 

<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";
                }

                ?>
                <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

  • 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.