Jump to content


Photo

Problemas Com Paginação


  • Faça o login para participar
6 replies to this topic

#1 destrutorx

destrutorx

    Hell Yes!

  • Usuários
  • 175 posts
  • Sexo:Masculino
  • Localidade:Nova Iguaçu - RJ
  • Interesses:Quadrinhos, cinema, musica, programação, internet

Posted 03/01/2008, 09:38

Olá, galera. Feliz Ano novo. Preciso da ajuda de vocês.
Estou tendo problemas com a paginação de uma sessão de meu site. Em todas as outras sessões funcionou direito, mas nessa página não está funcionando... a pessoa nao consegue avançar pra página seguinte. Quando tenta ela fica em branco...

Essa pagina que esta dando problema tem no topo links com as letras do alfabeto. Voce clica na letra e aparece todos os registros que começam com aquela letra. Uso GET para passar a letra para uma variavel.

Não estou conseguindo resolver, podem ajudar? :unsure:
Seguem os códigos:

Paginacao.php
[codebox]<?php
$quant_pg = ceil($quantreg/$numreg);
$quant_pg++;

// Verifica se esta na primeira página, se nao estiver ele libera o link para anterior
if ( $_GET['pg'] > 0) {
echo "<a href=".$PHP_SELF."?pg=".($_GET['pg'] -1) ."class=pg><b>&laquo; anterior</b></a>";
} else {
echo "<font color=#CCCCCC>&laquo; anterior</font>";
}
// Aqui começa a alteração
// faz o controle da quantidade de paginas irá mostrar em números na paginação
if (($_GET['pg'] - 3) < 1 ){
$ant = 1;
} else {
$ant = $_GET['pg'] - 3;
}
if (($_GET['pg'] + 6) > $quant_pg ) {
$pos = $quant_pg;
} else {
$pos = $_GET['pg'] + 6;
}

// Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO
for($i_pg=$ant;$i_pg < $pos;$i_pg++) {
// Aqui termina a alteração
// Verifica se a página que o navegante esta e retira o link do número para identificar visualmente
if ($_GET['pg'] == ($i_pg-1)) {
echo "&nbsp;<span class=pgoff>[$i_pg]</span>&nbsp;";
} else {
$i_pg2 = $i_pg-1;
echo "&nbsp;<a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a>&nbsp;";
}
}

// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
if (($_GET['pg']+2) < $quant_pg) {
echo "<a href=".$PHP_SELF."?pg=".($_GET['pg'] +1)." class=pg><b>próximo &raquo;</b></a>";
} else {
echo "<font color=#CCCCCC>próximo &raquo;</font>";
}

?>[/codebox]

a sessão com problemas
[codebox]<?
$letra = $_GET[letra]; //PASSANDO A LETRA PRA ESCOLHER REGISTROS CERTOS

//######### INICIO Paginação
$numreg = 9; // Quantos registros por página vai ser mostrado
if (!isset($pg)) {
$pg = 0;
}
$inicial = $_GET['pg'] * $numreg;

//######### FIM dados Paginação
$i=0;
$n = 3; //numero de colunas
echo "<table align=\"center\" cellpadding=\"13\">";

// Serve para contar quantos registros você tem na seua tabela para fazer a paginação
$sql_conta = mysql_query("SELECT * FROM bios WHERE inicial = '$letra' ORDER BY nome");

$quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação

include("paginacao2.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>

echo "<br><br>";


// Faz o Select pegando o registro inicial até a quantidade de registros para página
$sql = "SELECT * FROM bios WHERE inicial = '$letra' ORDER BY nome LIMIT $inicial, $numreg";
$resposta2 = mysql_db_query($db, $sql, $conn);
while($valor = mysql_fetch_array($resposta2)) {


echo $i%$n==0 ? "\n<tr>\n<td>" : "\n<td>";
echo "<a href=\"ficha.php?nome=".$valor[nome]."\" target=\"centro\" title=\"".$valor[nome]."\"><img src=\"imagens/".$valor[caminho]."\" border=\"0\"></a>";

echo $i%$n==3 ? "\n</td>\n</tr>" : "\n</td>";
$i++;
}
echo "</table>";

?>[/codebox]

Edição feita por: savior, 03/01/2008, 11:42.


#2 Jeison Free

Jeison Free

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado

Posted 04/01/2008, 11:08

eh so colocar em modulo

ex

inicial = '$letra%'

ou seja tudo q começar com $letra

ok
Poster de
www.iesart.com
www.pagelessbrasil.com
www.scriptbrasil.com.br (scripts)

<?php alem do limite

#3 destrutorx

destrutorx

    Hell Yes!

  • Usuários
  • 175 posts
  • Sexo:Masculino
  • Localidade:Nova Iguaçu - RJ
  • Interesses:Quadrinhos, cinema, musica, programação, internet

Posted 07/01/2008, 11:14

Não esta avançando de página! Nao entendo pq!

Ajuda. please!

#4 Jeison Free

Jeison Free

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado

Posted 07/01/2008, 12:00

como fiz no topico anterior

http://www.iesart.co...dex.php?arq=127

da uma lida nesse tuto
Poster de
www.iesart.com
www.pagelessbrasil.com
www.scriptbrasil.com.br (scripts)

<?php alem do limite

#5 destrutorx

destrutorx

    Hell Yes!

  • Usuários
  • 175 posts
  • Sexo:Masculino
  • Localidade:Nova Iguaçu - RJ
  • Interesses:Quadrinhos, cinema, musica, programação, internet

Posted 07/01/2008, 13:44

Eu refiz seguindo o tutorial indicado e ainda assim o problema se manteve inalterado.

[codebox]
<?
$letra = $_GET[letra];


$busca = "SELECT * FROM bios WHERE inicialx = '$letra' ORDER BY nome";
$total_reg = "7"; // número de registros por página

if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}

$inicio = $pc - 1;
$inicio = $inicio * $total_reg;

//configurando exibição da tabela em 3 colunas
$i=0;
$n = 3; //numero de colunas
echo "<table align=\"center\" cellpadding=\"13\">";
//fim da configuração


$limite = mysql_query("$busca LIMIT $inicio,$total_reg");
$todos = mysql_query("$busca");

$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas

// vamos criar a visualização
while ($dados = mysql_fetch_array($limite)) {


echo $i%$n==0 ? "\n<tr>\n<td>" : "\n<td>";
echo "<a href=\"ficha.php?nome=".$dados[nome]."\" target=\"centro\" title=\"".$dados[nome]."\"><img src=\"imagens/".$dados[caminho]."\" border=\"0\"></a>";

echo $i%$n==3 ? "\n</td>\n</tr>" : "\n</td>";
$i++;
}
echo "</table>";



// agora vamos criar os botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
?>
[/codebox]

Acho que tem a ver com a variavel $letra usada no SELECT... aho que ela está se perdendo quando avança de página... mas não to sabendo corrigir isso. Podem ajudar? :huh:

#6 Jeison Free

Jeison Free

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado

Posted 07/01/2008, 13:57

ex

echo " <a href='?pagina=$proximo&letra=$letra'>Próxima -></a>";

vc tem q re-enviar ela neh senão não vai mesmo
ou pelo que vi você faz uma coluna só para a letra inicial!

não precisa disso não cara coloca em modulo como te falei
Poster de
www.iesart.com
www.pagelessbrasil.com
www.scriptbrasil.com.br (scripts)

<?php alem do limite

#7 destrutorx

destrutorx

    Hell Yes!

  • Usuários
  • 175 posts
  • Sexo:Masculino
  • Localidade:Nova Iguaçu - RJ
  • Interesses:Quadrinhos, cinema, musica, programação, internet

Posted 07/01/2008, 14:18

Obrigado pela ajuda. Agora esta funcionando direitinho.

E obrigado pela dica tb. Vou tirar a coluna letra inicial.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq