Ir para o conteúdo
rippp

paginacao problema

Mensagens Recomendadas

rippp

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 :D

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


Java, Android developerhttp://minimalcode.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cyclop

Ora bem, para alem de teres o codigo muito desorganizado e nao estares a fazer da melhor forma, qual é a tua duvida?


"Quando eu for grande quero ser como o Celso"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nazgulled

Já ha uns tempos deixei aqui um snippet de código para fazer isso... Procura no armazém de código (que acho que ainda existe).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

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. :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

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

Partilhar esta mensagem


Ligação 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 os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.