Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

peterpah

Paginação esta a dar mal

Mensagens Recomendadas

peterpah    1
peterpah

boas este e o codigo que tenho mas o problema e quando meto seguinte ele nao lista outros registos.Ajudem me :eek:

<?php
include 'cont.php';
global $paginacao ;
global $n;

if (!isset($_GET['pag']))
    $_GET['pag']=1;
$pag = ($_GET['pag']);
$pag = filter_var($pag, FILTER_VALIDATE_INT);

$inicio = 2;
$limite = 10;

if ($pag!='')
{
$inicio = $pag - 1;
} 

$busca_total = mysql_query("SELECT COUNT(*) as total FROM servico");
$total = mysql_fetch_array($busca_total);
$total = $total['total'];

$busca = mysql_query("SELECT * FROM servico, unidade, categoria WHERE servico.id_unidade=unidade.id_unidade and servico.id_categoria=categoria.id_categoria LIMIT $inicio, $limite");
if (mysql_num_rows($busca)>0)
				echo"<table border='0' width='100%' cellpadding='0' cellspacing='0' id='product-table'>
			<tr>
				<th class='table-header-repeat line-left minwidth-1'><a href=''> nº </a></th>
				<th class='table-header-repeat line-left minwidth-1'><a href=''>Serviço nome </a></th>
				<th class='table-header-repeat line-left minwidth-1'><a href=''>Unidade</a></th>
				<th class='table-header-repeat line-left minwidth-1'><a href=''>Preço Unitario </a></th>
				<th class='table-header-repeat line-left minwidth-1'><a href=''>Categotia </a></th>
				<th class='table-header-options line-left'><a href=''>Opções</a></th>
				</tr>";
{

	while ($row = mysql_fetch_array($busca))
	{
	if(($n%2)==0){
		echo "
			<tr>
				<td>".$row['id_servico']."</td>
				<td>".$row['servico_nome']."</td>
				<td>".$row['unidade']."</td>
				<td>".$row['preco_unitario']."€</td>
				<td>".$row['categoria']."</td>
				<td class='options-width'>
				<a href='excluirdoc2.php?id=".$row['id_servico']."' onClick='aviso() title='Editar' class='icon-1 info-tooltip'></a>
				<a href='' title='eliminar' class='icon-2 info-tooltip'></a>
				</td>
				</tr>";
	}
	else
	{
		echo"<tr class='alternate-row'>
				<td>".$row['id_servico']."</td>
				<td>".$row['servico_nome']."</td>
				<td>".$row['unidade']."</td>
				<td>".$row['preco_unitario']."€</td>
				<td>".$row['categoria']."</td>
				<td class='options-width'>
				<a href='' title='Editar' class='icon-1 info-tooltip'></a>
				<a href='' title='eliminar' class='icon-2 info-tooltip'></a>
				</td>
				</td>
			</tr>";
			}
			$n++;


}
echo"</table>";

$prox = $pag + 1;
$ant = $pag - 1;
$ultima_pag = ceil($total / $limite);
$penultima = $ultima_pag - 1;	
$adjacentes = 2;

echo '<div class="paginacao" align="right">';

if ($pag>1)
{
	$paginacao = '<a href="listacat.php?pag='.$ant.'">anterior</a>';
}


if ($ultima_pag <= 5)
{
for ($i=1; $i< $ultima_pag+1; $i++)
{
	if ($i == $pag)
	{
		$paginacao .= '<a class="atual" href="listacat.php?pag='.$i.'">'.$i.'</a>';
	} else {
		$paginacao .= '<a href="listacat.php?pag='.$i.'">'.$i.'</a>';
	}
}
} 

if ($ultima_pag > 5)
{
if ($pag < 1 + (2 * $adjacentes))
{
	for ($i=1; $i< 2 + (2 * $adjacentes); $i++)
	{
		if ($i == $pag)
		{
                                if (isset($paginacao))
                                    $paginacao .= '<a class="atual" href="listacat.php?pag='.$i.'">'.$i.'</a>';
                                else
                                    $paginacao = '<a class="atual" href="listacat.php?pag='.$i.'">'.$i.'</a>';
		} else {
                                if (isset($paginacao))
                                    $paginacao .= '<a href="listacat.php?pag='.$i.'">'.$i.'</a>';
                                else
                                    $paginacao = '<a href="listacat.php?pag='.$i.'">'.$i.'</a>';
		}
	}
	$paginacao .= '...';
	$paginacao .= '<a href="listacat.php?pag='.$penultima.'">'.$penultima.'</a>';
	$paginacao .= '<a href="listacat.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>';
}
elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3)
{
	$paginacao .= '<a href="listacat.php?pag=1">1</a>';
	$paginacao .= '<a href="listacat.php?pag=1">2</a> ... ';
	for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++)
	{
		if ($i == $pag)
		{
			$paginacao .= '<a class="atual" href="listacat.php?pag='.$i.'">'.$i.'</a>';
		} else {
			$paginacao .= '<a href="listacat.php?pag='.$i.'">'.$i.'</a>';
		}
	}
	$paginacao .= '...';
	$paginacao .= '<a href="listacat.php?pag='.$penultima.'">'.$penultima.'</a>';
	$paginacao .= '<a href="listacat.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>';
}
else {
                $inic = $ultima_pag - (4 + (2 * $adjacentes));
                if ($inic > 3){
                    $paginacao .= '<a href="listacat.php?pag=1">1</a>';
                    $paginacao .= '<a href="listacat.php?pag=1">2</a> ... ';
                    }
                else{
                    $inic=3;
                    $paginacao .= '<a href="listacat.php?pag=1">1</a>... ';
                    }

	for ($i = $inic; $i <= $ultima_pag; $i++)
	{
		if ($i == $pag)
		{
			$paginacao .= '<a class="atual" href="listacat.php?pag='.$i.'">'.$i.'</a>';
		} else {
			$paginacao .= '<a href="listacat.php?pag='.$i.'">'.$i.'</a>';
		}
	}
}
}

}


if ($prox <= $ultima_pag && $ultima_pag >= 2)
{
	$paginacao .= '<a href="listacat.php?pag='.$prox.'">próxima »</a>';
}

	echo $paginacao;

echo '</div>';
?>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
yoda

Falta-te calcular o $inicio com o tipo de paginação que queres. Se queres mostrar, por exemplo, 10 registos por página, o $inicio será 1 na página 1, mas na página 2 será 10, e na terceira erá 30.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade