JaCoBBluE Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 Olá pessoal!Estou precisando exibir registros do banco de dados e a cada 16 deles, preciso que repita uma informação.Como devo proceder? Alguém pode me dar uma mão? vai ser algo como abaixo:<ul> <!-- esta tag preciso que seja repetida após 16 registros --> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> </ul> <!-- termina aqui e repete no loop até o fim dos registros -->Alguém se habilita?Muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 Bom dia, JaCoBBluE!Você precisa pode usar o WHILE, algo mais ou menos assim:$ini=1;WHILE (O parâmetro que você vai usar para o WHILE){ IF ($ini==16) { $ini=1; PRINT"Aqui dentro você coloca suas tags acima"; } ELSE {$ini++;}}É apenas uma sugestão.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Bacana... até ai tudo bem...Mas entre a repetição da tag, há os 16 registros...E como devo fazer para listar eles e aí sim repetir a tag?Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 coloca o comando para exibir o registro do banco no else, e lembre-se de reiniciar a variável $ini após exibir a TAG Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Eu tenho este código abaixo funcionando... porém, o cara que fez o layout e o css, a meu pedido, modificou a estrutura da galeria q vai exibir as imagens...O que me quebrou mesmo foi a repetição do <ul> após os 16 registros... abaixo o código:<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); while(!$b->EOF) { ?> <ul> <li class="item"> <? $cont = "0"; while(!$b->EOF){ $cont = $cont+1; if ($cont == 11) { ?> </li> <li class="item"> <? } ?> <a class="thumb" href="java script:void(0);"><img src="square+thumb+50+33.php?imagem=../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg" style="padding-right:1px;" /></a> <? if ($cont == 11){ $cont = "1"; } $b->MoveNext(); } ?> <? $b->MoveNext(); } ?> </li> </ul> Preciso de algo assim, porém, que seja exibido da seguinte forma: <ul class="pagina"> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> </ul>Muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 vê se esse código te ajuda.<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont = "0"; <ul> <li class="item"> while(!$b->EOF) { if ($cont == 16){ </li> $cont = 0; <li class="item"> } else{ <a class="thumb" href="java script:void(0);"><img src="square+thumb+50+33.php?imagem=../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg" style="padding-right:1px;" /></a> $cont +1; } $b ->MoveNext(); } </li> </ul> ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Deu um erro :blink: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 Olá.Sobre sua Pergunra:"Bacana... até ai tudo bem...Mas entre a repetição da tag, há os 16 registros...E como devo fazer para listar eles e aí sim repetir a tag?"Achei que sua dificuldade fosse apenas a cada 16 linhas, aparecer aquelas TAGs.Conforme disse o Rafael, na cláusula esle você deve colocar o código para que se chegue as 16 linhas.Porque enquanto não der 16, ele vai colocando seu dados, conforme pedido.Caso tenha dificuldades com a busca dos dados volte.Mas a sugestão que te passei está muito boa.Não vi nenhum erro nela.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 consegue verificar qual erro deu? eu só fiz o tratamento no loop, pode ser que tenha faltando algum código para a o resto da página Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Já tá me dando um nó na mente caras...O que eu preciso é que liste as 16 imagens e depois repita o <ul class="pagina"> + 16 </ul><ul class="pagina"> e assim por diante...Não sei se fui claro... talvez eu esteja na área errada do fórum... entendo pouco de php, me viro, mas entendo pouco, e até então não tinha pintado uma questão como essa... o que mostra no código abaixo é o que precisa ser repetido com os dados do BD...<ul class="pagina"> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> <li> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> <img src="imagem.jpg"> </li> </ul>Muito obrigado!porque pelo que eu percebi vão ser dois loops... um pra repetir os <li> e outro pra repetir os <ul>... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 isso mesmo porem não serão 2 loops e sim 2 "ifs", eu só coloquei para repetir o <li> verificando apenas o <ul>, agora corrigi de acordo com o que solicitou.se a cada 4 registros você irá repetir o <li> e a cada 16 irá repetir o <ul>, seu código ficaria algo assim<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont_li = 1; $cont_ul = 1; <ul> <li class="item"> while(!$b->EOF) { if ($cont_ul == 16){ </li> </ul> $cont_ul = 0; $cont_li = 1; <ul> <li class="item"> } else{ if ($cont_li == 4) { $cont_li =1; </li> <li class="item"> }else{ <a class="thumb" href="java script:void(0);"><img src="square+thumb+50+33.php?imagem=../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg" style="padding-right:1px;" /></a> $cont_li +1; } $cont_ul+1; $b->MoveNext(); } </li> </ul> ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Colei seu código no Dreamweaver e me parece que tem algo errado... digo por exemplo nesta parte:$cont_ul = 1; <ul> <li class="item"> Devo deixar assim? $cont_ul = 1; echo "<ul>"; echo "<li class="item">"; Obrigado! Corrigindo... $cont_ul = 1; echo "<ul>"; echo "<li class=\"item\">";Ou estou viajando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 Sim, quase isso, como você já havia me passado o código sem os Echos, achei que sabia que tinha que pôr..$cont_ul = 1; echo "<ul>"; echo "<li class=item>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Então só pra confirmar...<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont_li = 1; $cont_ul = 1; echo "<ul class=\"item\">"; echo "<li>"; while(!$b->EOF) { if ($cont_ul == 16){ echo " </li>"; echo " </ul>"; $cont_ul = 0; $cont_li = 1; echo " <ul class=\"item\">"; echo " <li>"; } else{ if ($cont_li == 4) { $cont_li =1; echo " </li>"; echo " <li>"; }else{ ?> <a class="lightview" rel="gallery" href="../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg"><img width="100" height="100" alt="" src="foto.php?imagem=../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg" /></a> <? $cont_li +1; } $cont_ul+1; $b->MoveNext(); } echo "</li>"; echo "</ul>"; ?>Assim a página ficou toda branca :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 sim, porque tem código errado ainda.. na hora que você "abre" o <li>, você não precisa colocar as "\" para o nome deixa echo ' <li clase="item">'; troque as aspas duplas por simples onde for o echo, as duplas deixa para parte de dentro. <? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont_li = 1; $cont_ul = 1; echo '<ul class="item">'; echo '<li>'; while(!$b->EOF) { if ($cont_ul == 16){ echo ' </li>'; echo ' </ul>'; $cont_ul = 0; $cont_li = 1; echo ' <ul class="item">'; echo ' <li>'; } else{ if ($cont_li == 4) { $cont_li =1; echo ' </li>'; echo ' <li>'; }else{ // não olhem essa parte daqui ainda, devido ao tempo corrido aqui, mas parece desnecessário abrir e fechar tantas tags do php assim ?> <a class="lightview" rel="gallery" href="../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg"><img width="100" height="100" alt="" src="foto.php?imagem=../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg" /></a> <? $cont_li +1; } $cont_ul+1; $b->MoveNext(); } echo "</li>"; echo "</ul>"; ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Troquei as aspas como você me orientou, mas a página permanece toda em branco :(O código ficou assim:<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont_li = 1; $cont_ul = 1; echo '<ul class="item">'; echo '<li>'; while(!$b->EOF) { if ($cont_ul == 16){ echo ' </li>'; echo ' </ul>'; $cont_ul = 0; $cont_li = 1; echo ' <ul class="item">'; echo ' <li>'; } else{ if ($cont_li == 4) { $cont_li =1; echo ' </li>'; echo ' <li>'; }else{ ?> <a class="lightview" rel="gallery" href="../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg"><img width="100" height="100" alt="" src="foto.php?imagem=../fotosgaleria/<? echo $cdgaleria?>/<?=$b->fields["cdfoto"]?>g.jpg" /></a> <? $cont_li +1; } $cont_ul+1; $b->MoveNext(); } echo '</li>'; echo '</ul>'; ?>Será q o problema pode estar na linha q exibe a imagem?Se for pra por ela dentro de um echo, como fica?Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 pode serm faz um teste troca o comando de exibição que está agora por apenas echo $b->["cdfoto"];, ele deveria apenas por o nome das fotos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Testei assim:<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont_li = 1; $cont_ul = 1; echo '<ul class="item">'; echo '<li>'; while(!$b->EOF) { if ($cont_ul == 16){ echo ' </li>'; echo ' </ul>'; $cont_ul = 0; $cont_li = 1; echo ' <ul class="item">'; echo ' <li>'; } else{ if ($cont_li == 4) { $cont_li = 1; echo ' </li>'; echo ' <li>'; }else{ echo '<a class="lightview" rel="gallery" href="../fotosgaleria/$cdgaleria/$b->fields["cdfoto"]g.jpg"><img width="100" height="100" alt="" src="foto.php?imagem=../fotosgaleria/$cdgaleria/$b->fields["cdfoto"]g.jpg" /></a>' $cont_li +1; } $cont_ul+1; $b->MoveNext(); } echo '</li>'; echo '</ul>'; ?>Continua tudo branco :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 não, teste assim:<? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; $b = $conn->Execute($sql); $cont_li = 1; $cont_ul = 1; echo '<ul class="item">'; echo '<li>'; while(!$b->EOF) { if ($cont_ul == 16){ echo ' </li>'; echo ' </ul>'; $cont_ul = 0; $cont_li = 1; echo ' <ul class="item">'; echo ' <li>'; } else{ if ($cont_li == 4) { $cont_li = 1; echo ' </li>'; echo ' <li>'; }else{ echo $b->cdfoto; $cont_li +1; } $cont_ul+1; $b->MoveNext(); } echo '</li>'; echo '</ul>'; ?>qual banco que você está usando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 MySQL...Mas neste último código que você mandou não tem a linha q mostra a imagem :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 sim, ele vai exibir apenas o nome, isso eu fiz para saber se o erro é no código de exibição ou se é em outra lugar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 18, 2010 Autor Denunciar Share Postado Novembro 18, 2010 Testei com o código q você mandou e permanece tudo em branco a página :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 18, 2010 Denunciar Share Postado Novembro 18, 2010 você está com problemas na conexão com o banco, tem certeza que foi só o CSS que alterou, como você abria sua conexão, existe alguma função para tal?? vou por aqui, como se não houvesse e verifica se funciona.<?php //suas informações $dbhost = 'localhost'; $dbuser = 'user'; $dbsenha = 'senha'; $dbbanco = 'banco'; //abre conexão $con = mysqli_connect($dbhost, $dbuser, $dbsenha, $dbbanco) or die('Problemas de conexão com o banco'); //onde você declara o $cdgaleria ?? $sql = "SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"; //cria query $resul = mysql_query($con,$sql) or die(mysqli_error($con) . ' / ' . $sql); //$conn = Execute($sql); $cont_li = 1; $cont_ul = 1; echo '<ul class="item">'; echo '<li>'; while($b = mysql_fetch_objects($resul)) { if ($cont_ul == 16){ echo ' </li>'; echo ' </ul>'; $cont_ul = 0; $cont_li = 1; echo ' <ul class="item">'; echo ' <li>'; } else{ if ($cont_li == 4) { $cont_li = 1; echo ' </li>'; echo ' <li>'; }else{ echo '<a class="lightview" rel="gallery" href="../fotosgaleria/"'. $cdgaleria . '"/"'. $b->cdfoto . '".jpg"><img width="100" height="100" alt="" src="foto.php?imagem=../fotosgaleria/"'. $cdgaleria . '"/"' . $b->cdfoto .'".jpg" /></a>'; $cont_li +1; } $cont_ul+1; } } echo '</li>'; echo '</ul>'; //fecha sua conexão com o banco mysql_close($con); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 22, 2010 Autor Denunciar Share Postado Novembro 22, 2010 Olá amigo!Desta forma abaixo, está buscando os itens do banco e exibindo todos na tela, porém, dentro de um <li> somente... e não está trazendo também o código da foto que deveria aparecer antes do ".jpg".<? $cont_li = 1; $cont_ul = 1; echo "<ul class=\"item\">\n"; echo "<li>\n"; while($b = mysql_fetch_array($result)) { if ($cont_ul == 16){ echo " </li>\n"; echo " </ul>\n"; $cont_ul = 0; $cont_li = 1; echo " <ul class=\"item\">\n"; echo " <li>\n"; } else{ if ($cont_li == 4) { $cont_li = 1; echo " </li>\n"; echo " <li>\n"; }else{ echo "<a class=\"lightview\" rel=\"gallery\" href=\"../fotosgaleria/$cdgaleria/$cdfoto.jpg\"><img width=\"100\" height=\"100\" alt=\"\" src=\"foto.php?imagem=../fotosgaleria/$cdgaleria/$cdfoto.jpg\" /></a>\n"; $cont_li +1; } $cont_ul+1; } } echo "</li>\n"; echo "</ul>\n"; ?>Muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Novembro 22, 2010 Denunciar Share Postado Novembro 22, 2010 1 - Remova as barras que estão dentro do echo e ao lado de qualquer aspas.2- as variáveis $cdgaleria e $cdfoto são carregadas em qual momento? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaCoBBluE Postado Novembro 22, 2010 Autor Denunciar Share Postado Novembro 22, 2010 Mais acima no código:<?php $SQLy = "SELECT * FROM galeria WHERE cdgaleria = ".$_REQUEST["cdgaleria"]; $cury =& $conn->Execute($SQLy); $result = mysql_query("SELECT * FROM foto WHERE cdgaleria='$cdgaleria' ORDER BY cdfoto DESC"); $b =& $conn->Execute($result); ?> Tirando as barras, o php mostra algo como o código abaixo: <a class="lightview" rel="gallery" href="../fotosgaleria/$cdgaleria/$cdfoto.jpg"><img width="100" height="100" alt="" src="foto.php?imagem=../fotosgaleria/$cdgaleria/$cdfoto.jpg" /></a> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
JaCoBBluE
Olá pessoal!
Estou precisando exibir registros do banco de dados e a cada 16 deles, preciso que repita uma informação.
Como devo proceder? Alguém pode me dar uma mão? vai ser algo como abaixo:
Alguém se habilita?
Muito obrigado!
Link para o comentário
Compartilhar em outros sites
35 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.