Jump to content

Paginação


BCoelho

Recommended Posts

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

Link to comment
Share on other 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... 😄

Cumps

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.