Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>";
}
}
}
?>>
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
nos links, no lugar de "paginas" coloque apenas "pg"
nos links, no lugar de "paginas" coloque apenas "pg"
Fiz a mudança de "paginas" e continua dando erro de Warning: Division by zero
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>";
}
?>Perfeito, agora deu certinho.
Muito obrigado Alaerte
>
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?
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..
>
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
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.
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
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'];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
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;