Whlie exibir mais de um resultado por laço

20/10/2015

0

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

Igor Oliveira

Responder

Posts

20/10/2015

Jothaz

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

20/10/2015

Igor Oliveira

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

20/10/2015

Jothaz

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

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

20/10/2015

Igor Oliveira

Ele exibiu apenas 1 imagem por vez.
Responder

20/10/2015

Jothaz

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:

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

20/10/2015

Igor Oliveira

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

20/10/2015

Jothaz

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:

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar