Ir para conteúdo
Fórum Script Brasil
  • 0

Exibição de registros do BD


JaCoBBluE

Pergunta

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!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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>";
?>

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

  • 0

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);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...