Dee 0 Denunciar post Postado Abril 28, 2010 Bom Dia ... Esses dias comecei a fazer um E-Commerce e necessitei de fazer paginação de resultados devido a fazer busca de produtos no site. Porém, o banco de dados aqui é SQL Server. No Fórum e na Net, só achei exemplos de paginação em MySQL, usando na query de consulta a função LIMIT. Mas no SQL Server não possui essa função que cai entre nós, é fácil fazer paginação usando o LIMIT. Daí fui procurando na Net sobre SIMULAR o LIMIT no SQL. Achei, mas tive que incrementar algumas coisas na query. Enfim, não é uma paginação complexa, é simples: Primeira - Anterior - Próxima - Última Eu queria assim: | 1 | 2 | 3 | 4 | 5 | 6 | Mas não estou com muito tempo de pensar nisso. Talvez seja até mais simples do que eu imagino, mas realmente estou sem tempo de pesquisar, até fiquei um tempo sem entrar aqui no fórum esses últimos dias. Vou postar o arquivo, paginacao.php. Gostaria que vocês analisassem e postassem o que acharam, o que eu posso melhorar nela ou até mesmo corrigir. Detalhe: Eu não consegui fazer o link Última, para ir para a Última Página de resultados e consequentemente fazer o Anterior a Última. Só falta esse pequeno detalhe que eu disse acima para terminar esse arquivo. Eu postei aqui em Artigos, Tutoriais e Matérias (PHP) devido a demanda de pessoas procurando saber como se faz paginação em SQL Server. Obrigado! <?php require('conexao.php'); # Variável Para Definir Página Atual if(isset($_GET['pg_atual']) && $_GET['pg_atual'] != 0) { $pg_atual = (int)$_GET['pg_atual']; # Limite de Produtos Por Página $limite = $limite + $pg_atual; } else { $pg_atual = 0; # Limite de Produtos Por Página $limite = 9; } # Variável Que Recebe O Valor Vindo Do Formulário $produto = 'sa'; # Select Para Trazer O Total de Produtos $sql = "select count(produto_codigo) as total_produtos from produtos"; $exe = mssql_query($sql); $res = mssql_fetch_assoc($exe); $total_registros = $res['total_produtos']; # Select Para Trazer Os Resultados Referente a Filtragem Com Limite de 9 Produtos Por Página $qry = "select produto_codigo from ( select top 9 produto_codigo from ( select top $limite produto_codigo from produtos where descricao_tecnica like '$produto%' order by produto_codigo asc) as ID1 order by produto_codigo desc) as ID2 order by produto_codigo asc"; $exec = mssql_query($qry); # Laço Para Mostrar Os Produtos while($res = mssql_fetch_array($exec)) echo $res['produto_codigo'].'<br />'; # ----------------------------------------------- # Variável Para Definir Última Página --- Podem Fazer Aqui o Cálculo # ----------------------------------------------- # Variável Para Definir Valor de Página Anterior $anterior = $pg_atual - $limite; # Se Estiver Na Primeira Página Não Mostrar Links, Somente Os Nomes if($anterior < 0) { echo "Primeira - Anterior -"; $pg_atual = 9; } else { echo "<a href='paginacao.php?pg_atual=0'> Primeira </a> - "; echo "<a href='paginacao.php?pg_atual=$anterior'> Anterior </a> - "; } # Variável Para Definir Valor da Página Posterior $proxima = $pg_atual + $limite; # Se Estiver Na Última Página Não Mostrar Links, Somente Os Nomes if($proxima > $total_registros) { echo "Próxima - Última"; } else { echo "<a href='paginacao.php?pg_atual=$proxima'> Próxima </a> - "; echo "<a href='paginacao.php?pg_atual=$ultima'> Última </a>"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 30, 2010 cara, nunca trabalhei com SQL Server, vou mover para o forum principal, pq é bem provavel que ninguem tenha visto que você postou algo aqui. veja se ajuda http://www.htmlstaff.org/ver.php?id=22928 Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Abril 30, 2010 É pode mover, vamos ver se adianta. Tem mais de 30 Visualizações, mas deve ser díficil isso. Só preciso do Link da Última Página. Nem tentei mais... Vou ler o que você me passou depois. Vlw! Compartilhar este post Link para o post Compartilhar em outros sites