cassianooliver Postado Março 15, 2008 Denunciar Share Postado Março 15, 2008 to precisando exibir os registro de uma tabela no banco, mas não to conseguindo exibir como quero...tenho o seguinte...<div id=mynews> <?php while($destaque = mysql_fetch_array($query)) { $imagem = $destaque["imagem"]; $descricao = $destaque["descricao"]; $categoria = $destaque["categoria"]; ?> <div class="news_style"> <span class="mytable"> <p> <img src="<?php echo $url . $imagem; ?>" height="65" /> <strong>Lorem Ipsum</strong><br /> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis eleifend. </p> <p> <img src="<?php echo $url . $imagem; ?>" height="65" /> <strong>Lorem Ipsum</strong><br /> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis eleifend. </p> <p> <img src="<?php echo $url . $imagem; ?>" height="65" /> <strong>Lorem Ipsum</strong><br /> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis eleifend. </p> </span> </div> <?php } ?> </div> deveria ser exibido nessa div, os 3 primeiros registros, EX: <p> registro 1 </p> <p> registro 2 </p> <p> registro 3 </p>só que mostra o mesmo registro nos 3 <p>Preciso que a cada 3 registros, ele mostra a <div class="news_style"> com 3 registros....to penando...imagino que tenha que usar um for, mas não costumo usar e não tenho muita prática...alguém poderia dar uma ajuda? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 15, 2008 Denunciar Share Postado Março 15, 2008 A lógica está errada, você tem que controlar quando a div deve aparecer...<?php $cont = 1; while($destaque = mysql_fetch_array($query)) { $imagem = $destaque["imagem"]; $descricao = $destaque["descricao"]; $categoria = $destaque["categoria"]; if($cont == 1){ echo '<div class="news_style"><span class="mytable">'; } ?> <p> <img src="<?php echo $url . $imagem; ?>" height="65" /> <strong>Lorem Ipsum</strong><br /> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis eleifend. </p> <?php if($cont == 3){ echo '</span></div>'; $cont = 1; }else{ $cont++; } } ?>Só repare que pelo menos no laço não existe nenhuma variável chamada url. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cassianooliver Postado Março 15, 2008 Autor Denunciar Share Postado Março 15, 2008 vlw pela atenção Eserra...Vou explicar melhor o que preciso...To com um js de um slideshow, nele mostro 3 destaques...os 3 destaques são incluídos em uma div com a classe news_style, a cada div news_style é que são exibidas os 3 destaques correspondentes...Exemplo, os 3 primeiros registros<div id="esportes" class="news_style">aqui os 3 primeiros registros</div>depois o 4, 5 e 6<div id="esportes" class="news_style">aqui os próximos 3 registros</div>e assim por diante...a cada 3 registros, uma nova <div> e apenas 3 registros nessa div, será que fui mais claro? ou compliquei mais? hahahahcomo você sugeriu, só mostra 1 registro por vez...ex:<div> <p> registro 1 </p> </div> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 15, 2008 Denunciar Share Postado Março 15, 2008 Só um tem certeza? Como eu gosto de dizer "deixa eu mastigar pra você":1 - Temos uma variável de controle "$cont"2 - Essa variável diz quando a <div> e </div> deve ser ecoada no código.3 - if($cont == 1){echo '<div class="news_style"><span class="mytable">';}Como dá pra ver a <div... só vai ser ecoada quando o $cont for igual a 14 - if($cont == 3){echo '</span></div>';$cont = 1;}else{$cont++;}Também como dá pra ver, a </div> só vai ser ecoada quando $cont for igual a 35 - Conclusão parcial? O que estiver no meio vai ser impresso mais vezes do que a <div> </div>, correto?6 - Continuando, no mesmo código:if($cont == 3){echo '</span></div>';$cont = 1;}else{$cont++;}Verifico o valor de $cont, se for igual a 3 mando ecoar o </div> e mudo o valor de $cont para 1 para que na próxima volta do laço seja ecoado o <div...Caso o $cont não seja diferente de a três, simplesmente incremente ele.7 - Conclusão final, com certeza está imprimindo três: <p> registro 1 </p>No meio das divs, pode ter algum erro de sintaxe, mas a lógica é essa mesma. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cassianooliver Postado Março 16, 2008 Autor Denunciar Share Postado Março 16, 2008 perdão Eserra, tava certo mesmo...é que coloquei esse trechoif($cont == 3){ echo '</span></div>'; $cont = 1; }else{ $cont++; }no lugar errado...ta perfeito, brigadão! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 16, 2008 Denunciar Share Postado Março 16, 2008 :P Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
cassianooliver
to precisando exibir os registro de uma tabela no banco, mas não to conseguindo exibir como quero...
tenho o seguinte...
deveria ser exibido nessa div, os 3 primeiros registros, EX:só que mostra o mesmo registro nos 3 <p>
Preciso que a cada 3 registros, ele mostra a <div class="news_style"> com 3 registros....
to penando...
imagino que tenha que usar um for, mas não costumo usar e não tenho muita prática...
alguém poderia dar uma ajuda?
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.