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

(Resolvido) Probleminha com exibição de registros...


cassianooliver

Pergunta

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?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

como você sugeriu, só mostra 1 registro por vez...

ex:

<div>
     <p>
     registro 1
     </p>
</div>

Link para o comentário
Compartilhar em outros sites

  • 0

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 1

4 -

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 3

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

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
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...