Paginação - Como obter resultados diferentes

1. Paginação - Como obter resultados diferentes

Ana Claudia
Aninha_Azevedo

(usa Outra)

Enviado em 20/09/2012 - 01:15h

Olá Senhores. Sou nova em programação e por isso decidi buscar ajuda. Estou com problema ao executar uma paginação.

Acontece que a paginação funciona que é uma beleza... Mas eu tenho 3 divs diferentes dentro do mesmo loop while - e um espaço em tela que precisaria caber certa quantidade de divs. Acontece que se eu colocar o LIMIT = 3 (apenas como exemplo) ele manterá este resultado para as outras paginas e isso deixa o layout horrível (além de ser incorreto ao meu ver). Tentei todas as formas que eu (novata) conheço, vou postar o código que estou usando e se alguém puder me "Ensinar a pescar" eu fico grata.

aqui em cima esta a função de paginação que funciona belezinha.

$paginaAtual = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
$dbc = mysqli_connect(--------- etc -----);
$query = "SELECT * FROM `xxxx` WHERE `xxxx` = '$xxxxx' ORDER BY `tipo` ASC";
$resultado = mysqli_query($dbc, $query);
$total = mysqli_num_rows($resultado);
$resultadoPorPagina = 3;
$pular = (($paginaAtual -1) * $resultadoPorPagina);
$numeroPaginas = ceil($total / $resultadoPorPagina);
$query = $query . " LIMIT $pular, $resultadoPorPagina";
$resultado1 = mysqli_query($dbc, $query);

while($linha = mysqli_fetch_array($resultado1))
{
if($tipo == 1)
{
echo '<div class="1">';
}
elseif($tipo == 2)
{
echo '<div class="1">';
}
else($tipo == 3)
{
echo '<div class="1">';
}

}

Eu queria que enquanto o número de resultados $tipo 1 - fossem maior ou igual a 3 - a variável - $resultadoPorPagina - recebesse 3 -
mas que quando $tipo 1, $tipo2 ou $tipo3 - mudasse de valor a variável $resultadoPorPagina - também fosse alterada.

Desculpa se faltou algo, ou se não me expressei bem.
Desde já agradeço a ajuda e boa vontade de todos.


  


2. Re: Paginação - Como obter resultados diferentes

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 20/09/2012 - 06:29h

Utilize a função include() e se possível remova o loop.

Tem que ter esse limite de div's? Por que não tira esse limite. Se tem limite de três, só poderá usar três.


3. Re: Paginação - Como obter resultados diferentes

Ana Claudia
Aninha_Azevedo

(usa Outra)

Enviado em 20/09/2012 - 13:05h

Olá rei astro - Obrigado pela dica - A função include() até ojnde eu sei, apenas anexa uma arquivo externo ao que será usado quando incluido e isso não resolve o problema.

Não posso me desfazer do loop como sugerido pois preciso mostrar TODOS os resultados do BD - O que eu preciso de verdade é que a quantidade a ser exibida (aqui representada por $resultadoPorPagina) sofresse alteração numérica de acordo com sua quantidade ou tipo de div.

Como eu disse, é´uma tarefa bem complicada ao meu ver e por isso recorri ao fórum... Acredito ser uma forma de TODOS desenvolverem suas habilidades de programador juntos.

Grata desde já pela sua atenção.


4. Re: Paginação - Como obter resultados diferentes

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 20/09/2012 - 17:26h

Então você quer uma forma de contar o número de div's que uma página a ser exibida tem e colocar o valor em $resultadoPorPagina. É isso?


5. Re: Paginação - Como obter resultados diferentes

Ana Claudia
Aninha_Azevedo

(usa Outra)

Enviado em 20/09/2012 - 18:56h

Olá rei astro, novamente obrigado por tentar ajudar. Vamos ver se eu consigo passar a idéia um pouco mais clara, pois está confuso mesmo.

Eu tenho a paginação que funciona perfeitamente. Mas o que ocorre com TODAS as paginações que eu ví e estudei até aqui (e acredite, foram muitas formas) é que elas exibem os dados de um formato único. Ou se você quiser mudar o formato, o layout fica "bagunçado". O que eu queria não era controlar o número de div's e sim fazer com que dentro do loop (ou fora, não sei) eu tenha uma forma de alterar a quantidade de resultados que serão exibidos, ajustando o resultado ao layout e não ao contrário.

Para tentar ilustrar melhor imagina que tenho 3 box do mesmo tamanho

200x600 = menu
400x600 = onde ficarão exibidos os resultados
200x600 = fotos

Como as div's com os resultados tem tamanho diferentes e supondo que sua quantidade seja:

div 1 = 200px qtd = 3
div 2 = 140px qtd1 = 1
div 3 = 100px qtd2 = 3(valores ilustrativos)

se eu definir um determinado número de resultados o layout nunca fecha, suponha que eu tenha 3 resultados da div 1 - eu teria que ter um $resultadoorPagina = 3
o que daria certinho na tela enquanto a página fosse 1 - mas ao clicar no número 2 da paginação (que irá gerar anterior 1 2 3) - eu terei apenas 3 resultados que somados em pixel dariam 140 + 100 + 100 = 340px. Deixando um vazio de 260px sendo que eu ainda terei mais um resultado pela frente, o número 3 da paginação, que irá mostrar apenas 1 resultado.

O ideal seria que no número 2 da paginação como sobram 260px, que ele mostrasse todos os resultados;

se eu defino o $resultadoPorPagina com qualquer valor ele sempre ficara fixo - precisava de uma forma dele se adequar ao numero de exibições.

Desculpa tomar o tempo de vocês mas achei que seria legal dividir isso com todos, quem puder ajudar fico grata e aos que dedicaram sua atenção também.
Abraço e estou aqui, pensando, se eu encontrar a solução posto tb.







6. Re: Paginação - Como obter resultados diferentes

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 20/09/2012 - 19:07h

Com certeza dá pra fazer isso com CSS. Pena que estudei pouco sobre ele, mas tem como você colocar as margens e dimensões das div's com tamanhos automáticos, que crescem e diminuem de acordo com o tamanho da página a ser exibida.

Funciona bem com PHP, e é integrado com html.

Tente refazer essa pergunta na comunidade de CSS ou pesquise sobre ele. Pode crer que a solução é usá-lo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts