Dunhaaaa 0 Denunciar post Postado Agosto 21, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 21, 2008 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
Dunhaaaa 0 Denunciar post Postado Agosto 21, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 21, 2008 nos links, no lugar de "paginas" coloque apenas "pg" Compartilhar este post Link para o post Compartilhar em outros sites
Dunhaaaa 0 Denunciar post Postado Agosto 21, 2008 nos links, no lugar de "paginas" coloque apenas "pg" Fiz a mudança de "paginas" e continua dando erro de Warning: Division by zero Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 21, 2008 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
Dunhaaaa 0 Denunciar post Postado Agosto 21, 2008 Perfeito, agora deu certinho. Muito obrigado Alaerte Compartilhar este post Link para o post Compartilhar em outros sites
Dunhaaaa 0 Denunciar post Postado Agosto 21, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 22, 2008 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
Dunhaaaa 0 Denunciar post Postado Agosto 22, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 22, 2008 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
Dunhaaaa 0 Denunciar post Postado Agosto 22, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 22, 2008 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
Dunhaaaa 0 Denunciar post Postado Agosto 25, 2008 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