Whlie exibir mais de um resultado por laço
20/10/2015
0
Galera, ainda sou novo.
Estou com um codigo php e preciso que o while em um mesmo laço exiba 6 resultados, isso é possível, caso sim, como? caso não, qual a solução ?
Segue codigo abaixo:
<?php ######################################### $conexao = conectar(); $sql = "SELECT * FROM convenios LIMIT 6"; $stmt = $conexao->prepare($sql); $stmt->execute(); while ($row = $stmt->fetch()) { ?> <div class="item-convenios"> <div class="pull-left"> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> </div> <div class="pull-left"> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> </div> <div class="pull-left"> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> </div> </div> <?php } ?>
A ideia é que ele jogue 6 imagens diferentes nas divs em cada laço.
Igor Oliveira
Posts
20/10/2015
Jothaz
Qual o erro que retorna? Poste-o para facilitar a ajuda.
Qual o conteúdo do campo "imagemconvenio"?
Qual o HTML gerado?
20/10/2015
Igor Oliveira
Exemplo: no banco tenho cadastrado 12 imagens.
quando ele fizer o loop ele deve colocar uma imagem diferente em cada img. no caso 6 imagens,
faz novamente o loop e colocar + 6
Porém ele faz o loop, joga uma imagem 6 x. Em cada img ele joga a mesma imagem.
Depois ele faz o loop e joga a 2ª img 6x
e assim vai 12 vezes.
20/10/2015
Jothaz
Teste ai e veja o que acontece. Se der erro de sintaxe, me desculpe vai ter de consertar. kkk
<?php ######################################### $conexao = conectar(); $sql = "SELECT * FROM convenios LIMIT 6"; $stmt = $conexao->prepare($sql); $stmt->execute(); $contador = 0; $quebrou = true; while ($row = $stmt->fetch()) { if ($quebrou) { ?> <div class="item-convenios"> <?php } ?> <div class="pull-left"> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> </div> <?php if ($quebrou) {?> </div> <?php $quebrou = false; } $contador = $contdor + 1; if ($contador == 3) { $contador = 0 $quebrou = true; } } ?>
Na verdade não gosta e misturar o código PHP com o HTML, mas fazer-se-a o que?
20/10/2015
Jothaz
Tente entender a lógica que propus e tente ajustá-la.
E realmente o código que postei estava errado, teste assim:
<?php ######################################### $conexao = conectar(); $sql = "SELECT * FROM convenios LIMIT 6"; $stmt = $conexao->prepare($sql); $stmt->execute(); $contador = 0; $quebrou = true; while ($row = $stmt->fetch()) { if ($quebrou) { ?> <div class="item-convenios"> <?php $quebrou = false; } ?> <div class="pull-left"> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['imagemconvenio'] ?>" /> </div> <?php $contador = $contdor + 1; if ($contador == 3) { ?> </div> <?php $contador = 0 $quebrou = true; } } ?>
Teste e veja se roda.
20/10/2015
Igor Oliveira
20/10/2015
Jothaz
Não sei qual o resultado final que você deseja.
Não conheço a estrutura e conteúdo da sua tabela.
Então por mais que eu queira fica muito difícil.
Vou lhe sugerir uma outra abordagem.
Faça o While e criei um array com os caminhos da imagem:
while ($row = $stmt->fetch()) { //Crie o array aqui, na web você vai achar centenas de exemplo de com fazer //Coloque o conteúdo do campo camiho da imagem no array }
Depois use o array para criar as div´s:
<div class="item-convenios"> <div class="pull-left"> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['seu_array[0]'] ?>" /> <img id="<?= $row['id'] ?>" height="" width="" src="data:imagemconvenio;base64,<?= $row['seu_array[1]'] ?>" /> </div> ===> coloque o resto de acordo com a necessidae </div>
Bom espero que lhe ajude e boa soete.
Clique aqui para fazer login e interagir na Comunidade :)