Jump to content

paginacao problema


rippp
 Share

Recommended Posts

boas.. tenho andado a tentar por a paginação a dar numa pagina e vou ai

 
<?php 
		require('sqlconect.php');
		$pagiselect=("SELECT * FROM noticias ORDER BY data LIMIT '".$idi."','".$idf."'");
		$pagiselect2 = mysql_query($pagiselect);
		$ttlsql = mysql_query('SELECT * FROM noticias');
		$ttltr = mysql_num_rows($ttlsql);
		$ttlpag=ceil('$ttltr/20'); //para saber quantos links possiveis
		if ($ttlpag = 0){
			$ttlpag== 1;   
		}
		$numnot = 20; // noticias por pagina
		$pag = $_GET['pag'];  //numero da pagina
		if (!isset($_SESSION['$pag'])){
			$pag=1;    //dar a primeira pagina de dados o numero 1
		}
		$idi = ('($pag * 20)-($pag - 1) * 20)');
		$idf = ('$pag * 20');
		$numero_links = 5; // numero de links visiveis
		$pagant= ('$pag - 1');
		$pagseg = ('$pag + 1');
		echo ("pagina $pag de $ttlpag no total de $ttltr");
		while ($dados = mysql_fetch_array($pagiselect2)) {
			$titul = $dados['titulo'];
			$corp = $dados['corpo'];
			echo (" $corp - $titul ");
		?>
		<?php 
		// criar variaveis para os links
		$linkant == $pag; // link anterior
		if ($linkant == 1) {
			$linkant == 1;
		}
		else {
			$linkant == ($pag - 1);
		}
		$linkprox == $pag;   // link prox
		if ($linkprox >=$ttlpag){
			$linkprox == $pag; }
		else {
			$linkprox == ($pag + 1);
		}
		?>
		<?php }?>

ja não consigo sair daqui. falta-me a parte dos links centrais, o fetch array nao fuciona. Ajuda era porreiro 😄

PS: ja passei isso pelo Geshi mas nada.. ja ponho bem

Java, Android developerhttp://minimalcode.net

Link to comment
Share on other sites

A função ceil que usas lá em cima, funciona?

ceil('$ttltr/20')

Quando muito, acho que devia estar entre aspas e não entre plicas (não tenho como testar daí a minha pergunta, e até pode ser uma causa de erro). Repara se o valor devolvido é o que pretendes.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

a uns tempos vi um sistema de paginação aqui no forum, já nao me lembro de quem era mas funciona perfietamente so tens de o adaptar ao que pretendes:

<?php
include "connections/mysqlconnect.php";

mysql_select_db ("$database_TestConnect") or die ("Impossivel ligar a base de dados");

if (!isset($_GET['pag'])){ //--------Se a página actual não estiver definida
        $pag = 1; //---------Passa a estar, e é apresentada como sendo a 1ª.
}else{ //-------Se já estiver definida.
        $pag = $_GET['pag']; //-------Usa-se a página que é.
}

$linhas_por_pag = 8; //-------Estamos a dizer quantos registos serão apresentados por página.

/*Definimos um principio para a busca na Base de Dados.
Que será a página($pag) X a quantidade de registo por página($linhas_por_pag) menos a mesma quantidade($linhas_por_página)*/
$inicio = (($pag*$linhas_por_pag) - $linhas_por_pag);

$sql = mysql_query("SELECT * FROM tabela LIMIT $inicio, $linhas_por_pag") or die (mysql_error());


?>

 <?php

//Vamos buscar os dados à base de dados e adicionamos à tabela criada

while($row = mysql_fetch_array($sql)){

?>
Aqui listas os dados como pretendes
<?php
}
?>

<?php
$sqlt = "SELECT COUNT(*) as Num FROM automoveis WHERE `user`='$user' AND `tipo`='$tipo'";

$total_res = mysql_result(mysql_query($sqlt), 0);
// Vamos saber o total de registos que existem na base de dados
//$total_res = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM automoveis"), 0);

// Vamos saber quantas páginas é que o total de registos dá e arredonda-se o total para cima(com ceil()), pra o resultado não seja 1.4 ou 2.32
$total_pag = ceil($total_res/$linhas_por_pag);

// Vamos criar um link para as páginas anteriores à actual
if ($pag > 1){
        $anterior = ($pag-1);
        echo "<a class='normal' href=\"".$_SERVER['PHP_SELF']."?pag=$anterior\">Anterior  </a>";
}

for($i=1; $i <= $total_pag; $i++){
        if(($pag) == $i){
                echo "<font class='normal'><strong>$i</strong> </font>"; //-----O <strong> aplicado a $i dá ênfase à página que se visualiza.
        }else{
                echo "<a class='normal' href=\"".$_SERVER['PHP_SELF']."?pag=$i\">$i </a>";
        }
}

// Vamos criar um link para as páginas seguintes à actual
if($pag < $total_pag){
        $proximo=($pag+1);
        echo "<a class='normal' href=\"".$_SERVER['PHP_SELF']."?pag=$proximo\">  Próximo</a>";
}

?>

espero que ajude

APARTE: Usa o Geshi, fica mais apresentável. 👍

Link to comment
Share on other sites

o ceil funciona.. a minha duvida é como por os links a funcionar...

o exemplo que te deixei em cima tens os links a funcionar, basei-te nele e adapta... entretanto, como ja tinha dito este sistema não é meu mas reparei que este sistema lista todas as páginas independentemente da quantidade de paginas a apresentar, no caso de teres 500 páginas vais ter 500 paginas apresentdas mais o anterior e o proximo, entretanto, por isso mesmo e porque a minha aplicação iria ter constantemente resultados com numeros elevados de páginas, alterei a aplicação para que, no caso de a consulta apresentar mais de 20 páginas apresentar apenas as duas primeiras, as duas ultimas, a actual e as 5 anteriores e posteriores... se estiveres interessado diz kk coisa...

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
 Share

×
×
  • 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.