Rasp 3 Denunciar post Postado Maio 20, 2009 Fala galera... tô com um probleminha meio besta mais não consigo resolver, nem sei como pesquisar sobre... tenho o seguinte script de paginação: $limite = 10; $pg = (isset($_GET['pg']) && is_numeric($_GET['pg'])) ? $_GET['pg'] : 1; $inicio = ($pg * $limite) - $limite; $conexao = mysql_query("SELECT * FROM tabela ORDER BY campo ASC LIMIT $inicio, $limite"); $total = mysql_num_rows(mysql_query("SELECT * FROM tabela")); $total_pg = ceil($total/$limite); $total_pg++; $anterior = ($pg - 3) < 1 ? 1 : $pg - 3; $proximo = ($pg + 4) > $total_pg ? $total_pg : $pg + 4; echo ($pg >= 5) ? "<span><a href=\"?pg=1\">« «</a></span>\r\n" : ''; echo ($pg > 1) ? "<span><a href=\"?pg=".($pg - 1)."\">«</a></span>\r\n" : ''; for($i_pg = $anterior; $i_pg < $proximo; $i_pg++) { if($pg == ($i_pg)) { echo "<span class=\"pag_atual\">$i_pg</span>\r\n"; } else { echo "<span><a href=\"?pg=".$i_pg."\">$i_pg</a></span>\r\n"; } } echo ($pg + 1) < $total_pg ? "<span><a href=\"?pg=".($pg + 1)."\">»</a></span>\r\n" : ''; echo ($pg <= $total_pg - 5) ? "<span><a href=\"?pg=".($total_pg - 1)."\">» »</a></span>\r\n" : ''; Exibo normalmente com ele a quantidade de registros que possui a tabela dando um echo $total... porém, me surgiu a necessidade de mostrar a posição dos registros na tela, exemplo: estou exibindo os registros de 10 à 20, então teria de aparecer: Mostrando de 10 até 20 de $total registros... mais não sei como fazer isso... Alguem poderia dar uma ideia? Obrigado. Abs Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 20, 2009 Este é o valor que está na variavel total. $total = mysql_num_rows(mysql_query("SELECT * FROM tabela")); Só da um echo nela. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 20, 2009 Exibindo <?php echo ((($i_pg-1) * $limite) + 1); ?> registros de um total de <?php echo $total; ?> Explicação: Suponhamos que esteja na página 2, e exiba 10 registros por página, logo: $i_pg = 2; $limite = 10; Sendo assim: (((2 - 1) * 10) + 1) = 11 Ou seja, começa a exibir a partir do registro 11. Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Maio 20, 2009 matias_rezende, O total ($total) eu já mostro numa boa... o problema é como o Diego explicou é exibir a quantidade (de tanto à tanto) que está atualmente na tela. Diego, beleza, funcionou em partes mais não é bem isso... tipo... desse modo que você deu exemplo minha primeira página lista que está mostrando 41 registro de total, sendo que na verdade eu só exibo 10 registros por página... a ideia seria assim: tenho 10 registros na tabela, mostrando do 1 ao 10. ai queria fazer que a mensagem abaixo ficasse Mostrando de 1 até 10 de 100 registros... Valeu a atenção ai ;) Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 20, 2009 Tenta assim: echo 'Mostrando de '.$inicio.' até '.($inicio + $limite); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 20, 2009 Acho que assim vai dar errado... Tenta assim... echo 'Mostrando de '.$inicio.' até '.($inicio + $limite - 1); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 20, 2009 Ao invés do $inicio, use $inicio + 1 na hora de exibir... Por que não existe o registro 0. echo 'Mostrando de '.($inicio + 1).' até '.($inicio + $limite); Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 20, 2009 echo 'Mostrando de '.($inicio + 1).' até '.($inicio + $limite).' de um total de '.$total.' registros.'; Supondo que $inicio = 0, então... Mostrando de (0 + 1) até (0 + 10) de um total de (100) registros. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 20, 2009 Na verdade não... Porque lá em cima, ele coloca que, se for a primeira consulta, o valor do inicio é 1... $pg = (isset($_GET['pg']) && is_numeric($_GET['pg'])) ? $_GET['pg'] : 1; Não sei se vai funcionar. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Maio 20, 2009 A questão do inicio $inicio, eu resolvi assim que terminei de escrever, rs, parei pra pensar e me toquei que seria isso... mais valeu ;) Agora a questão do final não pode ser: $inicio + $limite pois quando a página não está completa ou seja... quando não exibe 10 registros (ex: a última pág) ele mostra redondo... não sei (posso estar falando besteira) mais acho que tenho que fazer algo referente a consulta no banco :S Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Maio 20, 2009 Então seria: $total_exibidos = mysql_num_rows($conexao) // A tua query com limite... echo 'Mostrando de '.($inicio + 1).' até '.($inicio + $total_exibidos).' de um total de '.$total.' registros.'; Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 20, 2009 Não testei, mas acho que isto funciona $qtde = mysql_num_rows($conexao); // aí o fim fica $inicio + $qtde Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Maio 20, 2009 beleza... até ai tudo bem... mais como eu faço a consulta no banco? pois se eu fizer uma consulta somente pra saber a quantidade do banco vai ser o mesmo que $total, correto? :S Ou seja: Consulto o total no banco (ex. 100) inicio + total (0 + 100) = 100 Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 20, 2009 Não... você usa a sua variável conexão, que já é a consulta... Só coloca o mysql_num_rows. Vai te retornar quantas linhas tem nesta consulta... Se for a última, e tiver só 3, vai retornar 3, mesmo tendo como limite 10. Entendeu??? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Maio 20, 2009 Aaa sim... saquei... po agora ficou belezinha... valeo matias e diego ^^ Resolvido ;D Abração! Compartilhar este post Link para o post Compartilhar em outros sites