Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dunhaaaa

[Resolvido] Paginação

Recommended Posts

Boa tarde pessoal.

Estou fazendo uma listagem de resultados porém sua paginação encontra-se com erro na hora do link que vem de um link dinâmico.

Eu coloquei até o link na barra de endereço correto e ele não pula para os próximos registros.

O que tenho que fazer para que de certo?

Segue o código:

 

CODE
<?php

 

$sql = mysql_query ("SELECT * FROM PORTAL_Colunista WHERE Dep_Esp = '$Id' ");

$pg = 2;

$total = mysql_num_rows($sql); //retorna o total de linhas na tabela

$paginas = ceil($total / $pg);

if(!isset($pagina)) {

$pagina = 0;

$inicio = $pagina * $pg;

$sql = mysql_query ("SELECT PORTAL_Colunista.Id, PORTAL_Colunista.Usuario, PORTAL_Departamento_Esp.Nome_Departamento_Esp, PORTAL_Colunista.Titulo, PORTAL_Colunista.Conteudo, PORTAL_Colunista.Fonte, PORTAL_Colunista.Data, PORTAL_Colunista.Imagem, PORTAL_Colunista.Status FROM PORTAL_Colunista, PORTAL_Departamento_Esp WHERE Dep_Esp = '$Id' AND PORTAL_Departamento_Esp.Id = PORTAL_Colunista.Dep_Esp ORDER BY PORTAL_Colunista.Data DESC LIMIT $inicio, $pg");

 

while($linha = mysql_fetch_array($sql)){

?>

 

<div id="info"><p align="center" style="font-size:12px"><strong><?php echo $linha['Conteudo'];?></strong></p>

 

<?php

 

if ($pagina > 0) {

$menos = $pagina - 1;

$url = "$PHP_SELF?pagina=$menos";

echo "<a href=\"$url\">Anterior</a>";

}

 

for ($i=0; $i<$paginas; $i++) {

$url = "$PHP_SELF?pagina=$i";

echo "<a href=\"$url\">$i</a>";

}

 

if($pagina < $paginas) {

$mais = $pagina + 1;

$url = "$PHP_SELF?pagina=$mais";

echo "<a href=\"$url\">Próxima</a>";

}

 

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu conheço esse script de paginação, está alterado errado, essa var $pg não deveria ter valor nenhum como atriburo, pois a mesma receberia um valor via GET, deve colocar assim:

 

$pg=$_GET['pg']; ao invés de $pg=2;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu conheço esse script de paginação, está alterado errado, essa var $pg não deveria ter valor nenhum como atriburo, pois a mesma receberia um valor via GET, deve colocar assim:

 

$pg=$_GET['pg']; ao invés de $pg=2;

Olá Alaerte, desde já obrigado por sua ajuda.

 

Mudei o que você dice e agora ele esta dando este erro:

 

Warning: Division by zero in /home/garden/hiperestilo/HIPER/coluna.php on line 112

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom amigão, segue ai o script de paginação modificado, veja se da certo, faça um backup do seu antes.:

 

index.php

 

<?php
//######### INICIO Paginação
$con=mysql_connect('localhost','USUARIO','SENHA')or die(mysql_error($con));
mysql_select_db('DB',$con)or die(mysql_error($con));

	$numreg = 10; // Quantos registros por página vai ser mostrado
	$pg=$_GET['pg'];
	if (!isset($pg)) {
		$pg = 0;
	}
	$inicial = $pg * $numreg;

//######### FIM dados Paginação

	// Faz o Select pegando o registro inicial até a quantidade de registros para página
	$sql =mysql_query("SELECT PORTAL_Colunista.Id, PORTAL_Colunista.Usuario, PORTAL_Departamento_Esp.Nome_Departamento_Esp, PORTAL_Colunista.Titulo, PORTAL_Colunista.Conteudo, PORTAL_Colunista.Fonte, PORTAL_Colunista.Data, PORTAL_Colunista.Imagem, PORTAL_Colunista.Status FROM PORTAL_Colunista, PORTAL_Departamento_Esp WHERE Dep_Esp = '$Id' AND PORTAL_Departamento_Esp.Id = PORTAL_Colunista.Dep_Esp ORDER BY PORTAL_Colunista.Data DESC $inicial,$numreg")or die(mysql_error());

	// Serve para contar quantos registros você tem na seua tabela para fazer a paginação
	$sql_conta = $con->query("SELECT * FROM PORTAL_Colunista,PORTAL_Departamento_Esp,");

	$quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação
if($quantreg > 0){
while($linha  = mysql_fetch_array($sql)){
?>
<div id="info"><p align="center" style="font-size:12px"><strong><?php echo $linha['Conteudo'];?></strong></p>
<?php
}
}
echo "<p align=\"center\">".include('paginar.php')."</p>";
?>

paginar.php

CODE

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type='text/css'>

<!--

.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}

a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}

a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration: none}

-->

</style>

<?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 ($pg > 0) {

 

echo "<a href=".$_SERVER['PHP_SELF']."?pg=".($pg-1) ."class=pg><b>« Anterior</b></a>";

} else {

echo "<font color=#CCCCCC>« Anterior</font>";

}

 

// Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO

for($i_pg=1;$i_pg<$quant_pg;$i_pg++) {

// Verifica se a página que o navegante esta e retira o link do número para identificar visualmente

if ($pg == ($i_pg-1)) {

$pg=$_GET["pg"];

echo " <span class=pgoff>[$i_pg]</span> ";

} else {

$i_pg2 = $i_pg-1;

echo " <a href=".$_SERVER['PHP_SELF']."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";

}

}

 

// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima

if (($pg+2) < $quant_pg) {

 

echo "<a href=".$_SERVER['PHP_SELF']."?pg=".($pg+1)." class=pg><b>Próximo »</b></a>";

} else {

echo "<font color=#CCCCCC>Próximo »</font>";

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, agora deu certinho.

 

Muito obrigado Alaerte

Alaerte só mais uma dúvida... no caso o meu link seria www.meusite.com.br/coluna.php?Id=5 pois se trata de um link dinamico agora esta dando problema na parte deste link com referencia ao Id.

Mexi na parte de paginar.php e coloquei meio que na unha o Id=5 porem ele nao pula de link sempre fica no mesmo .

 

Você sabe como devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é na parte de paginar que tem que mexer... aliás não precisa mexer ali pra nada.

 

como assim link dinâmico ? você deve colocar o LINK dentro da DIV que está dentro da páginação, ai você linka para outra página que pega o ID e exibe somente o registro referente ao ID, não tem problema nenhum..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é na parte de paginar que tem que mexer... aliás não precisa mexer ali pra nada.

 

como assim link dinâmico ? você deve colocar o LINK dentro da DIV que está dentro da páginação, ai você linka para outra página que pega o ID e exibe somente o registro referente ao ID, não tem problema nenhum..

 

Então Alaerte, vou explicar melhor no meu menu tenho o item "coluna" este item vem de uma tabela do BD.

Clianco sobre este item "coluna" ele assume na barra do broser www.meusite.com.br/coluna?Id=5 e apresenta os resultados, até ai tudo bem.

Quando vou tentar ir para a próxima página ele perde a referencia do ID ( www.meusite.com.br/coluna?Id=5 ) ficando ( www.meusite.com.br/coluna.php?pg=1) com isto perco a referencia.

 

Como posso solucionar isto?

 

Se coloco na unha www.meusite.com.br/coluna.php?Id=5?pg=1 ou www.meusite.com.br/coluna.php?Id=5?pg=2 os resultados não mudam ficando sempre os mesmos.

 

Espero que possa me ajudar com estas questões... Já estou ficando louco com isso..rs

 

Desde já obrigado Alaerte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já te falei como resolver amigo, lika para outra página, você não vai precisar de paginação para trazer apenas um registro referente a um ID só... faz outra página e linka para ela, esquece a páginação para trazer um registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já te falei como resolver amigo, lika para outra página, você não vai precisar de paginação para trazer apenas um registro referente a um ID só... faz outra página e linka para ela, esquece a páginação para trazer um registro.

 

Você não entender Alaerte... tipo este ID é referente ao colunista... onde na tabela existe vários colunista... ou seja esse ID acaba sendo a identificação dele perante as matérias deles.

Com isso ele esta perdendo esta referencia... Me desculpe se esta meio confuso...rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu eim... não estou entendendo mesmo.

 

sabe dar manutenção nos links ? muda a query string mano... deve ser porque tu ta usando a mesma variável pra capturar os IDs, sendo assim ele perde a ref, não ? tenta colocar uma variável para cada ação.

 

$var1=$_GET['var_da_url1'];

$var2=$_GET['var_da_url2'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo resolvi o problema... estava marcando toco mesmo...

Na página (paginacao.php) inseri .&Id='.$Loja. fazer referencia ao Id desejado e agora foi...

 

<a href=".$_SERVER['PHP_SELF']."?pg=".($pg-1).'&Id='.$Loja."class=pg><b>« Anterior</b></a>

 

Valeu Alaerte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.