• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

BCoelho

Paginação

2 mensagens neste tópico

Boas!

Neste momento estou a fazer um site para uma loja de informática. No site vai mostrar uma lista de produtos e é óbio que vai existir muitos produtos, e é chato ter tudo numa página a lista toda de produtos. Por isso vou utilizar um limite de produtos a mostrar por página, neste momento estou a utilizar isto:

Primeiro  Anterior  Seguinte  Ultimo

Eu preferia utilizar uma combo, que mostra-se o número das páginas e depois escolher uma. Procurei um pouco na net mas só encontro do tipo como já tenho. Agredecia uma ajuda.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu aqui há uns tempso estava a desenvolver um sistema de pesquisas para um projecto e escrevi este código:

<?php 
include("dados_login.php");

$titulo_artigo=$_REQUEST['titulo_artigo'];
$edicao=$_REQUEST['edicao'];
$logic=$_REQUEST['logic'];
$sql=$_REQUEST['sql'];
$pag=$_REQUEST['pag'];
$php_self=$_SERVER['PHP_SELF'];

if($titulo_artigo) 
{
$sql1=($titulo_artigo) ? "titulo_artigo like '".$titulo_artigo."%'" : "";
}
if($logic)
{
$sql1=($titulo_artigo) ? "titulo_artigo like '".$titulo_artigo."%'" : "";
	if($edicao)
		{
			$sql1 .= ($sql1) ? "$logic": "";
			$sql1 .= "edicao like '%".$edicao."%'";
		}
}

if($titulo_artigo or $edicao)
{
	$ligacao=mysql_connect("$server","$utilizador","$password") or die("Impossivel ligar a base de dados.");

	$sql = "SELECT * FROM artigos WHERE ";
	$sql.= $sql1. "ORDER BY titulo_artigo ASC";
	print("Resultados obtidos na pesquisa: <br>");
	$resultado=mysql_db_query($base_dados,$sql) ;
		if($resultado) {
			$reg_pag=8;

					if(!pag){
						$pag=1;
						}
			$pag_ant=$pag-1;
			$pag_seg=$pag+1;
			$pag_ini=($reg_pag * $pag)- $reg_pag;
			$num_reg=mysql_num_rows($resultado);


			if($num_reg<=$reg_pag) {
				$num_pag=1;
				}
			else if(($num_reg % $reg_pag)==0) {
				$num_pag=$num_reg/$reg_pag;
				}
			else {
				$num_pag=$num_reg/$reg_pag +1;
				}

	$sql=$sql. "LIMIT $pag_ini,$reg_pag";
	$resultado = mysql_db_query($base_dados,$sql);
			while($registo=mysql_fetch_array($resultado)) {
			$titulo_artigo=$registo["titulo_artigo"];
			$edicao=$registo["edicao"];
			$id=$registo["id"];

			print("$id  $titulo_artigo $edicao<br>");
		}

		print ("Página - <p>");
		if(($pag_ant) && ($pag>1)) {
			echo "<a href=\"$php_self?pag=$pag_ant&titulo_artigo=$titulo_artigo&logic=$logic&edicao=$edicao&sql=$sql\">Anterior</a> - ";
			}

		for($i=1;$i<=$num_pag;$i++){
				if($i !=$pag){
					echo "<a href=\"$php_self?id=$id&pag=$i&titulo_artigo=$titulo_artigo&logic=$logic&edicao=$edicao&sql=$sql\">$i</a> -";
					}
				else {
					echo "$i -|";
					}
			}

		if($pag+1 < $num_pag) {
			echo "<a href=\"$php_self?id=$id&pag=$pag_seg&titulo_artigo=$titulo_artigo&logic=$logic&edicao=$edicao&sql=$sql\">Seguinte </a>";
			}

}

else {
		print("Não há registos.");
	}
	}

else {
		echo "Defina as condições de selecção:<br>";

		?>

Tens aí o essencial. Explora um pouco o código e adapta conforme o que necessitares. Qualquer dúvida é só mesmo perguntar... :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora