Ir para conteúdo

POWERED BY:

Arquivado

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

Dee

Paginação PHP + SQL Server

Recommended Posts

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

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

É 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

×

Informação importante

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