Array
(
)

Whlie exibir mais de um resultado por laço

Igor Oliveira
   - 20 out 2015

Bom dia!
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:
#Código <?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.

Jothaz
   - 20 out 2015

Não sou muito bom com PHP e não tenho como testar,mas aparentemente a ideia é esta mesmo.

Qual o erro que retorna? Poste-o para facilitar a ajuda.

Qual o conteúdo do campo "imagemconvenio"?

Qual o HTML gerado?

Igor Oliveira
   - 20 out 2015

A ideia é ele buscar uma imagem do banco.
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.

Jothaz
   - 20 out 2015

Com já disse não uso e nem gosto de PHP e não tenho nem como testa, mas acho que o código abaixo pode ajudá-lo, claor que você terá que sempre ter as imagens na sequencia certa e na quantidade certa.

Teste ai e veja o que acontece. Se der erro de sintaxe, me desculpe vai ter de consertar. kkk

#Código
<?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?

Igor Oliveira
   - 20 out 2015

Ele exibiu apenas 1 imagem por vez.

Jothaz
   - 20 out 2015

Brother estou fazendo o código sem poder testar então fica mais difícil acertar e como já disse não sou muito fã do PHP. kkkkkk

Tente entender a lógica que propus e tente ajustá-la.

E realmente o código que postei estava errado, teste assim:

#Código
<?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.

Igor Oliveira
   - 20 out 2015

Funcionou, porém dentro da div pull-left precisaria que gerasse duas imagens diferentes.

Jothaz
   - 20 out 2015

Camarada sinceramente não sei se posso ajudá-lo, pois estou viajando e não tenho como instalar o PHP no note que estou usando.
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:

#Código
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:

#Código
<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.