Ir para conteúdo

POWERED BY:

Arquivado

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

programador_master

[Resolvido] Como incrementar esse loop

Recommended Posts

Como faço pra pular pra linha seguinte a cada loop do while:

 

while($re = mysql_fetch_array($re)){
$id_prod   = $re['id'];
$nome      = $re['nome'];
$descricao = $re['descricao'];
$preco	   = $re['preco'];	

$imagem = "imagens/pizzas/".$id_prod.".png";
if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".jpeg";
if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".gig";
if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".bpm";
if(!is_file($imagem)) $imagem = "imagens/pizzas/notavailable.png";

$i++;
}

 

Tentei um $i++ mas não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explicando o que o João quis dizer, você está fazendo um fetch array em $re, que provavelmente é o seu 'mysql_query'.

Beleza, até aí tudo bem, então, quando o loop der sua primeira volta, você vai atribuir a variável $re o array, então seu while não funciona mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando o momento, então seu eu trocar o

 

while($re = mysql_fetch_array($re)){

 

por:

 

while($rf = mysql_fetch_array($re)){

 

o while vai pular pro próximo id automaticamente?

 

Pra ajudar vocês a entenderem, tenho uma lista não ordenada e em cada item da lista chamo um id do produto diferente. Como ainda não sou pro em PHP minha cabeça pensa assim, se eu colocar isso na primeira (<li>):

 

...
<li><?php echo $nome; ?><?php echo $descricao; ?></li>
...

 

e na segunda colocar o mesmo, o resultado vai ser igual. Não vai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podia ter começado o dia sem essa xD

 

Mas ta d boa, é bom que fico esperto da próxima vez :D

 

Voltando ao código, fiz o teste. Resultado:

 

O loop retorna o mesmo valor toda vez que dou um echo na variável.

 

O que acho obvio, porque não tem nada dizendo que ela vai ser diferente da primeira.

 

Uma observação é que o id retorna o último item da tabela que no caso é o 27. Estranho??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo,

 

O laço:

$sql = "SELECT * FROM pizzas_tradicionais ";
$re  = mysql_query($sql);

while($rf = mysql_fetch_array($re)){
   $id_prod   = $rf['id'];
   $nome      = $rf['nome'];
   $descricao = $rf['descricao'];
   $preco     = $rf['preco'];	

   $imagem = "imagens/pizzas/".$id_prod.".png";
   if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".jpeg";
   if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".gig";
   if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".bpm";
   if(!is_file($imagem)) $imagem = "imagens/pizzas/notavailable.png";

}

 

A lista:

 

...

<li>

<span class="descricao"><?php echo $descricao ?></span>

<span class="nome-produto"><?php echo $nome; ?></span>

<span class="linha"></span>

<a class="mostra-produto" href="<?php echo $url; ?>produtos/pizza01.php">Ver</a>

</li>

<li>

<img src="imagens/pizzas/pizza-mussarela-menor.gif" border="0" />

<span class="descricao"><?php echo $descricao; ?></span><br />

<span class="nome-produto"><?php echo $nome; ?></span>

<span class="linha"></span><a href="<?php echo $url; ?>produtos/pizza02.php" class="mostra-produto">Ver</a>

</li>

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que exibir suas 'lis' dentro do while, por isso está mostrando somente os dados da última pizza.

 

Cara, fiz isso aqui:

 

<ul id="pizzas-cardapio">

   <?php 

       $sql = "SELECT * FROM pizzas_tradicionais ";
       $re  = mysql_query($sql);

           while($rf = mysql_fetch_array($re)){
               $id_prod   = $rf['id'];
               $nome      = $rf['nome'];
               $descricao = $rf['descricao'];
               $preco	   = $rf['preco'];

               $imagem = "imagens/pizzas/".$id_prod.".png";
               if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".jpeg";
               if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".gig";
               if(!is_file($imagem)) $imagem = "imagens/pizzas/".$id_prod.".bpm";
               if(!is_file($imagem)) $imagem = "imagens/pizzas/notavailable.png";

               echo '<li>

               <img src="'.$rf['imagem'].'" width="100" height="68" border="0" style="background: #f0f0f0"/>

               <span class="descricao"><?php echo '.$rf['descricao'].' ?></span><br /><span class="nome-produto">
                   <?php echo '.$rf['nome'].'; ?></span>

               <span class="linha">         <br/>------------------------------------------------------------------------------------------------</span>

               <a class="mostra-produto" href="
                   <?php echo '.$url.'; ?>produtos/pizza01.php">Ver</a>';                          

               echo '</li>';

               }

?>

</ul>

 

Ta voltando só a linha, o resto vem em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim ..

<ul id="pizzas-cardapio">
<?php 
           $re  = mysql_query( 'SELECT * FROM pizzas_tradicionais' );                        
           while( $rf = mysql_fetch_array( $re ) ){
               $id_prod = $rf['id'];
               $nome = $rf['nome'];
               $descricao = $rf['descricao'];
               $preco = $rf['preco'];

               $imagem = "imagens/pizzas/".$id_prod.".png";

               echo '<li>

               <img src="'.$imagem.'" width="100" height="68" border="0" style="background: #f0f0f0" />

               <span class="descricao">'.$rf['descricao'].'</span><br />
			<span class="nome-produto">'.$rf['nome'].'</span>
               <span class="linha">
	<br/>------------------------------------------------------------------------------------------------
	</span>
               <a class="mostra-produto" href="'.$url.'produtos/pizza01.php">Ver</a>';              
               echo '</li>';                               
           }                       
?>                            
</ul>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Percebi que você executou a query dentro da própria variável, sinceramente, não entendi porque antes não funcionava mas agora funciona. :joia:

 

Incrivel como o conhecimento sobre o assunto pode levá-lo a solução do problema de forma simples.

 

Vou procurar aprender mais pra poder ajudar a galera aqui do fórum com o pouco que sei e que ainda estou aprendendo.

 

Surgiram outras dúvidas, mas antes vou pesquisar e ler um pouco sobre o assunto, se a coisa ficar preta volto a postar aqui :D

 

Obrigado Andrey, pela atenção e dedicação em me ajudar a solucionar esse problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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