Ir para conteúdo
chinesedg

Duvida sobre como criar um loop entre divs usando php

Recommended Posts

Estou desenvolvendo um código para imobiliária mas não estou conseguindo fazer o pulo entre divs. Usando este código abaixo descaracteriza o layout da página pois o loop pega somente 1 <div class="events-grids"></div> e tem que ser dois sendo que no primeiro pega ids 1 2 3 e o segundo ids 456 e assim por diante. Na imagem penso vocês entenderem o que estou pedindo. Fui claro?

Código:

<div class="events">
        <div class="container">
        <?php
            $conexao = bla bla bla
                $banco = bla bla bla;
            if (!$conexao) {
                die("Connection failed: " . mysqli_connect_error());
            }
            $query = "SELECT * FROM imoveis";
                $result = mysqli_query($conexao, $query);
                if($result){
                    while($row = mysqli_fetch_array($result)){
                        $ref = $row["ref"];
                        .
                        .
?>
            <div class="events-grids">
                <div class="col-md-4 events-grid">
                    <div class="events-grid1 hvr-sweep-to-top">
                        <a href="imovel.php"><img src="images/6.jpg" alt=" " class="img-responsive" /></a>
                        <h4><a href="imovel.php"><?php echo "$bairro"; ?></a></h4>
                        <ul>
                            <li><a href="imovel.php"><span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span><?php echo "$cidade"; ?></a></li>
                        </ul>
                        <p>Quartos: <?php echo "$quartos"; ?> | Suites: <?php echo "$suites"; ?> | Banheiros: <?php echo "$banheiros"; ?> | Vagas: <?php echo "$vagas"; ?> | Condomínio: <?php echo "$condominio"; ?></p>
                        <h4><a href="imovel.php"><?php echo "$preco"; ?></a></h4>
                    </div>
                </div>
                
            <?php
                }
        }
        ?>
            </div>            
        </div>
    </div>

img_casas.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso daí não é mais PHP e sim CSS. O PHP só passa informação, quem controla o <div> é o HTML. Em termos de apresentação, a equipe mais conhecida é o Bootstrap. No portal deles, eu encontrei um código exemplo de preço, mais ou menos parecido com o seu layout, e adaptei o PHP no meio deles. O código ficou enorme, e só consegui colocar três imóveis na tela:

 

<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="cid:css-ce6461f7-6874-4a99-9a14-5a00e5049f6e@mhtml.blink" />
    
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
    <meta name="generator" content="Hugo 0.104.2">
    <title>Pricing example · Bootstrap v5.2</title>

    <link rel="canonical" href="https://getbootstrap.com/docs/5.2/examples/pricing/">
 

<link href="https://getbootstrap.com/docs/5.2/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">

    <!-- Favicons -->
<link rel="apple-touch-icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
<link rel="icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
<link rel="icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
<link rel="manifest" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/manifest.json">
<link rel="mask-icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/safari-pinned-tab.svg" color="#712cf9">
<link rel="icon" href="https://getbootstrap.com/docs/5.2/assets/img/favicons/favicon.ico">
<meta name="theme-color" content="#712cf9">

   
    <!-- Custom styles for this template -->
    <link href="https://getbootstrap.com/docs/5.2/examples/pricing/pricing.css" rel="stylesheet">
  </head>
  <body>
    
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
  <symbol id="check" viewBox="0 0 16 16">
    <title>Check</title>
    <path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"></path>
  </symbol>
</svg>

<?php $mysqli=new mysqli("localhost","root","","astudy");
$query=$mysqli->query("select * from imoveis");$row=$query->fetch_assoc(); ?>

<div class="container py-3">
  <main>
    <div class="row row-cols-1 row-cols-md-3 mb-3 text-center">
      <div class="col">
        <div class="card mb-4 rounded-3 shadow-sm">
          <div class="card-header py-3">
            <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4>
          </div>
          <div class="card-body">
            <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1>
            <ul class="list-unstyled mt-3 mb-4">
              <li><?=$row['quartos']?> quartos</li> 
              <li><?=$row['banheiros']?> banheiros</li>
              <li><?=$row['vagas']?> vagas</li>
              <li>Bairro <?=$row['bairro']?></li>
            </ul>
            <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button>
          </div>
        </div>
      </div>

<?php $row=$query->fetch_assoc(); ?>

      <div class="col">
        <div class="card mb-4 rounded-3 shadow-sm">
          <div class="card-header py-3">
            <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4>
          </div>
          <div class="card-body">
            <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1>
            <ul class="list-unstyled mt-3 mb-4">
              <li><?=$row['quartos']?> quartos</li> 
              <li><?=$row['banheiros']?> banheiros</li>
              <li><?=$row['vagas']?> vagas</li>
              <li>Bairro <?=$row['bairro']?></li>
            </ul>
            <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button>
          </div>
        </div>
      </div>

<?php $row=$query->fetch_assoc(); ?>

      <div class="col">
        <div class="card mb-4 rounded-3 shadow-sm border-primary">
          <div class="card-header py-3 text-bg-primary border-primary">
            <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4>
          </div>
          <div class="card-body">
            <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1>
            <ul class="list-unstyled mt-3 mb-4">
              <li><?=$row['quartos']?> quartos</li> 
              <li><?=$row['banheiros']?> banheiros</li>
              <li><?=$row['vagas']?> vagas</li>
              <li>Bairro <?=$row['bairro']?></li>
            </ul>
            </ul>
            <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button>
          </div>
        </div>
      </div>
    </div>
    </div>
  </main>

  

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estudando um pouco mais o Bootstrap, consegui reduzir bastante o código:

 

<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://getbootstrap.com/docs/5.2/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">

<div class="container py-3">
<div class='row row-cols-1 row-cols-md-3 mb-3 text-center'>

  <?php $mysqli=new mysqli("localhost","root","","astudy");
    $query=$mysqli->query("select * from imoveis");
    for($icontador=1;$icontador<=3;$icontador++){
    $row=$query->fetch_assoc(); ?>

<div class="col">
<div class="card mb-4 rounded-3 shadow-sm">
<div class="card-header py-3">
    <h4 class="my-0 fw-normal"><img src=<?=$row['imagem']?> width=250 height=200></h4>
</div>
<div class="card-body">
    <h1 class="card-title pricing-card-title"><?=$row['preço']?></h1>
    <ul class="list-unstyled mt-3 mb-4">
        <li><?=$row['quartos']?> quartos</li> 
        <li><?=$row['banheiros']?> banheiros</li>
        <li><?=$row['vagas']?> vagas</li>
        <li>Bairro <?=$row['bairro']?></li>
    </ul>
    <button type="button" class="w-100 btn btn-lg btn-outline-primary">Cidade <?=$row['cidade']?></button>
</div>
</div>
</div>

<?php } ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz uma nova revisão no código original, o primeiro que foi postado. Ele não é completo, assim tomei a liberdade de alterar para poder testar aqui, e para a minha surpresa, tudo funciona, os imóveis são publicados na sequência. O único problema é o

<img src=images/6.jpg> - do jeito que foi escrito, todos os imóveis vão aparecer com a mesma imagem.

 

No seu código, você usou $bairro, e eu alterei para <?=$row["bairro"]?>, mas acredito que o problema não é esse. Eu acredito que o seu código está publicando os seis imóveis, mas usando a mesma foto, o que dá a impressão de que a informação está sendo repetida 6 vezes. A seguir o código que eu testei:

 

<!DOCTYPE html><html><head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head><body>

<div class="events">
<div class="container">
        
<?php
$conexao = new mysqli("localhost","root","","astudy");
if (!$conexao) { die("Connection failed: " . mysqli_connect_error());}
$query = "SELECT * FROM imoveis";
$result = mysqli_query($conexao, $query);
if($result){
    while($row = mysqli_fetch_array($result)){
        $ref = $row["ref"];
        ?>

<div class="events-grids">
<div class="col-md-4 events-grid">
<div class="events-grid1 hvr-sweep-to-top">
<a href="imovel.php"><img src="cinqueterre.jpg" alt=" " class="img-responsive" /></a>
<h4><a href="imovel.php"><?=$row["bairro"]?></a></h4>
    <ul>
        <li><a href="imovel.php"><span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span><?=$row['cidade']?></a></li>
    </ul>
    <p>Quartos: <?=$row["quartos"]?> | Suites: <?=$row["suites"]?> | Banheiros: <?=$row["banheiros"]?> | Vagas: <?=$row["vagas"]?> | 
    Condomínio: <?=$row["condominio"]?></p>
    <h4><a href="imovel.php"><?=$row['preco']?></a></h4>
</div>
</div>
                
<?php   }   }    ?>
            
</div>           
</div>
</div> 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 23/11/2022 at 00:31, Frank K Hosaka disse:

Eu fiz uma nova revisão no código original, o primeiro que foi postado. Ele não é completo, assim tomei a liberdade de alterar para poder testar aqui, e para a minha surpresa, tudo funciona, os imóveis são publicados na sequência. O único problema é o

<img src=images/6.jpg> - do jeito que foi escrito, todos os imóveis vão aparecer com a mesma imagem.

 

No seu código, você usou $bairro, e eu alterei para <?=$row["bairro"]?>, mas acredito que o problema não é esse. Eu acredito que o seu código está publicando os seis imóveis, mas usando a mesma foto, o que dá a impressão de que a informação está sendo repetida 6 vezes. A seguir o código que eu testei:

 


<!DOCTYPE html><html><head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head><body>

<div class="events">
<div class="container">
        
<?php
$conexao = new mysqli("localhost","root","","astudy");
if (!$conexao) { die("Connection failed: " . mysqli_connect_error());}
$query = "SELECT * FROM imoveis";
$result = mysqli_query($conexao, $query);
if($result){
    while($row = mysqli_fetch_array($result)){
        $ref = $row["ref"];
        ?>

<div class="events-grids">
<div class="col-md-4 events-grid">
<div class="events-grid1 hvr-sweep-to-top">
<a href="imovel.php"><img src="cinqueterre.jpg" alt=" " class="img-responsive" /></a>
<h4><a href="imovel.php"><?=$row["bairro"]?></a></h4>
    <ul>
        <li><a href="imovel.php"><span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span><?=$row['cidade']?></a></li>
    </ul>
    <p>Quartos: <?=$row["quartos"]?> | Suites: <?=$row["suites"]?> | Banheiros: <?=$row["banheiros"]?> | Vagas: <?=$row["vagas"]?> | 
    Condomínio: <?=$row["condominio"]?></p>
    <h4><a href="imovel.php"><?=$row['preco']?></a></h4>
</div>
</div>
                
<?php   }   }    ?>
            
</div>           
</div>
</div> 

 

Agradecido0. Vou testar aqui e posto se funcionou.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
×

Informação importante

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