Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação


Guest Lukas

Pergunta

Tipow , eu tenho este codigo aki:

<?php

$nomes = array("João", "Maria", "José", "Carlos", "Eduarda", "Paula", "Joana", "Marcelo", "Thiago", "Carla");

$por_pagina = 1;

if( $_GET['page'] )

  $pagina = $_GET['page'];

else

  $pagina = 1;

$inicio = ($pagina - 1) * $por_pagina;

$fim = $inicio + $por_pagina;

for( $i = $inicio; $i < $fim; $i++ )

  echo $nomes[$i] . "<br>";

$prox = $pagina + 1;

$ant = $pagina - 1;

echo "<a href=\"?page={$ant}\">Anterior</a> - <a href=\"?page={$prox}\">Próximo</a>"

?>

só aparece «anterior próxima»

só q eu queria deixar assim:

anterior 01 | 02 | 03 próxima

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

tem que colocar suas variaveis de conexao com o servidor e o banco de dados

<?

$re = mysql_query("SELECT count(*) as total FROM tabela") or die (mysql_error());

$total = mysql_result($re, 0, "total");

$pagina = 0;

if(isset($_GET["pagina"])) {

$pagina = $_GET["pagina"];

}

$limite = 1;

$paginas = ceil($total / $limite);

$inicio = $pagina * $limite;

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

$conta = mysql_num_rows($sql);

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

echo "O total de tabela do seu site é: $total.<br>";

$pr_cod_produto = $l["pr_cod_produto"];

agora aqui poe todos os dados da tabelas..

}

Isto é o que você quer

if($pagina > 0) {

$menos = $pagina - 1;

$url = $_SERVER["PHP_SELF]."?pagina=".$menos;

echo "<a href=\"$url\">Anterior</a>";

}

for($i = 1;$i < $paginas; $i++) {

$url = $_SERVER["PHP_SELF"]."?pagina=.$i;

echo " | <a href=\"$url\">$i</a>";

}

if($pagina < $paginas) {

$mais = $pagina + 1;

$url = $_SERVER["PHP_SELF]."?pagina=".$mais;

echo " | <a href=\"$url\">Próxima</a>";

}

?>

codigos HTL, buscando os dados, como por exemplo...

<form action='' method='post' name='visualizar_produtos'>

<table width='751' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td width='197' class="small"><b><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>C&oacute;digo do Produto:</font></b></td>

<td width='554' class="StoryTitle"><? print("$pr_cod_produto"); ?></td>

</table>

</form>

<?

Isto é o que você quer

if($pagina > 0) {

$menos = $pagina - 1;

$url = $_SERVER["PHP_SELF"]."?pagina=.$menos;

echo "<a href=\"$url\">Anterior</a>";

}

for($i = 1;$i < $paginas; $i++) {

$url = $_SERVER["PHP_SELF]."?pagina=".$i;

echo " | <a href=\"$url\">$i</a>";

}

if($pagina < $paginas) {

$mais = $pagina + 1;

$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;

echo " | <a href=\"$url\">Próxima</a>";

}

?>

agora e com vc.....

não sei se vai te ajudar, mas tentei

valeu guilherme

Editado por Guilherme014
Link para o comentário
Compartilhar em outros sites

  • 0

Da pra melhorar ele só não tive tempo ,mas ta funcionando

$nomes = array("João", "Maria", "José", "Carlos", "Eduarda", "Paula", "Joana", "Marcelo", "Thiago", "Carla");

$por_pagina = 1;

if( isset($_GET['page']) )

  $pagina = $_GET['page'];

else

  $pagina = 1;

$inicio = ($pagina - 1) * $por_pagina;

$fim = $inicio + $por_pagina;

for( $i = $inicio; $i < $fim; $i++ )

  echo $nomes[$i] . "<br>";

$prox = $pagina + 1;

$ant = $pagina - 1;

echo "<a href=\"?page={$ant}\">Anterior</a> - ";

$conta = count($nomes);

$soma = 2;

if($pagina >= $conta){

$soma = 0;

}

for($pg = $pagina; $pg <= ($pagina+$soma);$pg++){

echo "<a href=\"?page={$pg}\">$pg</a>  ";

}

$final = $pagina + 3;

if($pagina < $conta and $final <= $conta){

echo " <a href=\"?page={$prox}\">Próximo</a>";

}

Link para o comentário
Compartilhar em outros sites

  • 0

Aki está o código da paginacao:

<?php

global $PHP_SELF;

// A partir do PHP 4.2.3 é necessário declarar a variável $PHP_SELF como global.

@$pagina = $_REQUEST['pagina'];

@$exibe  = $_REQUEST['exibe'];

// Usamos $_REQUEST para pegar os valores das variáveis página e exibe.

// Um recurso que já existia mas que agora é obrigatório.

// Usamos @ para se o valor for NULL, o PHP não dar aquela mensagem chata.

if ($pagina == "") {

    $pagina = "1";

}

if ($exibe == "") {

    $exibe = "1";

}

// Verificando se as variavéis tão com valor NULL, EMPTY, como queiram chamar.

// Aqui que você define quantas linhas você quer por página modificando a variável $exibe

$arquivo_linhas = file("texto.txt");

// Aqui a $arquivo_linhas é uma array que começa a partir do 0 (zero) e vai ate a última // linha.

// Cada valor da array tem o conteúdo de sua respectiva linha.

// Escolha o seu arquivo o meu é texto.txt como acima.

$conta_linhas = count($arquivo_linhas);

// Count serve para contar quantas CHAVES tem dentro de uma ARRAY.

// Por exemplo, array[3] é a ultima então ele vai contar 0,1,2,3 e na variável resultar 4, // muito útil esse comando.

$total_paginas = ceil(($conta_linhas/$exibe));

// Ceil serve para arredondar um número pra cima então dividimos o total de linhas pelo

// quanto de linhas vamos exibir, arredondamos para cima e obtemos o número de páginas.

// Por exemplo, 5 divido por 2 vai dar 2.5 que signifaca que temos 3 páginas sendo a

// última com 1 registro.

echo "<center> Arquivo tem ".$conta_linhas." linhas <br>";

echo "Página ".$pagina." de ".$total_paginas."</center><br>";

// Usamos das informações calculadas para passar informações em texto para o leitor.

$linha_chegar = (($pagina-1)*$exibe);

// Essa é uma variável que determina por que linha devemos começar a exibir ao leitor,

// porque se ele estiver na página 3 vai querer que comece pela linha onde parou e não

// pela primeira.

for ($linha = 0; $linha != $linha_chegar; $linha++) {

    list ($num_linha, $conteudo_linha) = each ($arquivo_linhas);

}

// For basico para posicionar na linha com conteúdo certo a começar.

// Vou explicar: Loop de $linha igual 0 enquanto $linha for diferente da $linha_chegar

// vai somando um a cada loop

// Ai vem o comando que faz grande parte de tudo.

// List faz com que as variáveis $num_linha receba a CHAVE (KEY) da ARRAY e que a

// $conteudo_linha receba seu VALOR (VALUE)

// Esse EACH faz com que pegue separado cada valor da array.

   

$ultima_linha = ($linha_chegar + $exibe);

if ($ultima_linha > $conta_linhas) {

    $ultima_linha = $conta_linhas;

}

// Aqui a gente mostra de qual linha a qual linha o leitor está lendo. (meio redundante)

// A variável $ultima_linha recebe o valor de onde o posicionador parou mais o quanto

// exibe por página.

// Se ela for maior que o número de linhas do arquivo quer dizer que tá no fim dele,

// entaum ela recebe o valor do total de linhas.

$parar = "não";

while ($parar == "não") {

    list ($numlinha, $conteudolinha) = each ($arquivo_linhas);

    echo $conteudolinha."<br>";

   

    if (($numlinha + 1) == $ultima_linha) {

        $parar = "sim";

    }

}

// Loop principal ele é o sistema da exibição.

// Enquanto parar for igual a não continuar o loop usando o LIST que já expliquei e o EACH

// agora com ECHO para imprimir o conteúdo da linha na página.

// Agora dá pra entender como o LIST funciona não é?

// Se a CHAVE da array mais um (1) for igual ao valor da ultima linha, parar ganha o valor // de sim e o loop acaba.

echo "<BR>";

$navegacao = 1;

while ($navegacao <= $total_paginas) {

    if ($navegacao != $pagina) {

        echo ' <font face=verdana size=1><a href="'.$PHP_SELF.'?pagina='.$navegacao.'">'.$navegacao.'</a></font> ';

    } else {

        echo '<font face=verdana size=1><b> '.$navegacao.'</b></font> ';

    }

    $navegacao++;

}

?>

eu queria , cadastrar as paginas no arquivo texto e exibi-las

Tipow, no arquivo texto eu tenho as paginas cadastradas, ex:

1.php

2.php

daí quando a pessoa clicasse no link 2 iria pra pagina 2.php, q está cadastrada no arquivo texto

Link para o comentário
Compartilhar em outros sites

  • 0
Tipow , eu tenho este codigo aki:

<?php

$nomes = array("João", "Maria", "José", "Carlos", "Eduarda", "Paula", "Joana", "Marcelo", "Thiago", "Carla");

$por_pagina = 1;

if( $_GET['page'] )

  $pagina = $_GET['page'];

else

  $pagina = 1;

$inicio = ($pagina - 1) * $por_pagina;

$fim = $inicio + $por_pagina;

for( $i = $inicio; $i < $fim; $i++ )

  echo $nomes[$i] . "<br>";

$prox = $pagina + 1;

$ant = $pagina - 1;

echo "<a href=\"?page={$ant}\">Anterior</a> - <a href=\"?page={$prox}\">Próximo</a>"

?>

só aparece «anterior próxima»

só q eu queria deixar assim:

anterior 01 | 02 | 03 próxima

Por favor, alguém me ajude! unsure.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Olha , eu vou tentar te explicar:

vamos levar em consideracao, este script:

<?php 
global $PHP_SELF; 

// A partir do PHP 4.2.3 é necessário declarar a variável $PHP_SELF como global. 

@$pagina = $_REQUEST['pagina']; 
@$exibe  = $_REQUEST['exibe']; 

// Usamos $_REQUEST para pegar os valores das variáveis página e exibe. 
// Um recurso que já existia mas que agora é obrigatório. 
// Usamos @ para se o valor for NULL, o PHP não dar aquela mensagem chata. 

if ($pagina == "") { 
    $pagina = "1"; 
} 

if ($exibe == "") { 
    $exibe = "1"; 
} 

// Verificando se as variavéis tão com valor NULL, EMPTY, como queiram chamar. 
// Aqui que você define quantas linhas você quer por página modificando a variável $exibe 

$arquivo_linhas = file("texto.txt"); 

// Aqui a $arquivo_linhas é uma array que começa a partir do 0 (zero) e vai ate a última // linha. 
// Cada valor da array tem o conteúdo de sua respectiva linha. 
// Escolha o seu arquivo o meu é texto.txt como acima. 

$conta_linhas = count($arquivo_linhas); 

// Count serve para contar quantas CHAVES tem dentro de uma ARRAY. 
// Por exemplo, array[3] é a ultima então ele vai contar 0,1,2,3 e na variável resultar 4, // muito útil esse comando. 

$total_paginas = ceil(($conta_linhas/$exibe)); 

// Ceil serve para arredondar um número pra cima então dividimos o total de linhas pelo 
// quanto de linhas vamos exibir, arredondamos para cima e obtemos o número de páginas. 
// Por exemplo, 5 divido por 2 vai dar 2.5 que signifaca que temos 3 páginas sendo a 
// última com 1 registro. 

echo "<center> Arquivo tem ".$conta_linhas." linhas <br>"; 
echo "Página ".$pagina." de ".$total_paginas."</center><br>"; 

// Usamos das informações calculadas para passar informações em texto para o leitor. 

$linha_chegar = (($pagina-1)*$exibe); 

// Essa é uma variável que determina por que linha devemos começar a exibir ao leitor, 
// porque se ele estiver na página 3 vai querer que comece pela linha onde parou e não 
// pela primeira. 

for ($linha = 0; $linha != $linha_chegar; $linha++) { 
    list ($num_linha, $conteudo_linha) = each ($arquivo_linhas); 
} 

// For basico para posicionar na linha com conteúdo certo a começar. 
// Vou explicar: Loop de $linha igual 0 enquanto $linha for diferente da $linha_chegar 
// vai somando um a cada loop 
// Ai vem o comando que faz grande parte de tudo. 
// List faz com que as variáveis $num_linha receba a CHAVE (KEY) da ARRAY e que a 
// $conteudo_linha receba seu VALOR (VALUE) 
// Esse EACH faz com que pegue separado cada valor da array. 
     
$ultima_linha = ($linha_chegar + $exibe); 
if ($ultima_linha > $conta_linhas) { 
    $ultima_linha = $conta_linhas; 
} 



// Aqui a gente mostra de qual linha a qual linha o leitor está lendo. (meio redundante) 
// A variável $ultima_linha recebe o valor de onde o posicionador parou mais o quanto 
// exibe por página. 
// Se ela for maior que o número de linhas do arquivo quer dizer que tá no fim dele, 
// entaum ela recebe o valor do total de linhas. 

$parar = "não"; 
while ($parar == "não") { 
    list ($numlinha, $conteudolinha) = each ($arquivo_linhas); 
    echo $conteudolinha."<br>"; 
     
    if (($numlinha + 1) == $ultima_linha) { 
        $parar = "sim"; 
    } 
} 

// Loop principal ele é o sistema da exibição. 
// Enquanto parar for igual a não continuar o loop usando o LIST que já expliquei e o EACH 
// agora com ECHO para imprimir o conteúdo da linha na página. 
// Agora dá pra entender como o LIST funciona não é? 
// Se a CHAVE da array mais um (1) for igual ao valor da ultima linha, parar ganha o valor // de sim e o loop acaba. 

echo "<BR>"; 


$navegacao = 1; 

while ($navegacao <= $total_paginas) { 
    if ($navegacao != $pagina) { 
        echo ' <font face=verdana size=1><a href="'.$PHP_SELF.'?pagina='.$navegacao.'">'.$navegacao.'</a></font> '; 
    } else { 
        echo '<font face=verdana size=1><b>['.$navegacao.']</b></font> '; 
    } 
    $navegacao++; 
} 
?> 

daí, no arquivo texto.txt estaria cadastradas as seguintes paginas:

1.php

2.php

3.php

4.php

daí nos links 1 | 2 | 3 | 4 .......

quando a pessoa clicasse no link, eu queria q não aparece em formato texto, e sim em formato de pagina mesmo,

entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos supor que o texto.txt tenha:

pagina.html

pagina2.html

pagina3.html

paginacao.php:

<?php

global $PHP_SELF;

// A partir do PHP 4.2.3 é necessário declarar a variável $PHP_SELF como global.

@$pagina = $_REQUEST['pagina'];

@$exibe  = $_REQUEST['exibe'];

// Usamos $_REQUEST para pegar os valores das variáveis página e exibe.

// Um recurso que já existia mas que agora é obrigatório.

// Usamos @ para se o valor for NULL, o PHP não dar aquela mensagem chata.

if ($pagina == "") {

   $pagina = "1";

}

if ($exibe == "") {

   $exibe = "1";

}

// Verificando se as variavéis tão com valor NULL, EMPTY, como queiram chamar.

// Aqui que você define quantas linhas você quer por página modificando a variável $exibe

$arquivo_linhas = file("texto.txt");

// Aqui a $arquivo_linhas é uma array que começa a partir do 0 (zero) e vai ate a última // linha.

// Cada valor da array tem o conteúdo de sua respectiva linha.

// Escolha o seu arquivo o meu é texto.txt como acima.

$conta_linhas = count($arquivo_linhas);

// Count serve para contar quantas CHAVES tem dentro de uma ARRAY.

// Por exemplo, array[3] é a ultima então ele vai contar 0,1,2,3 e na variável resultar 4, // muito útil esse comando.

$total_paginas = ceil(($conta_linhas/$exibe));

// Ceil serve para arredondar um número pra cima então dividimos o total de linhas pelo

// quanto de linhas vamos exibir, arredondamos para cima e obtemos o número de páginas.

// Por exemplo, 5 divido por 2 vai dar 2.5 que signifaca que temos 3 páginas sendo a

// última com 1 registro.

echo "<center> Arquivo tem ".$conta_linhas." linhas <br>";

echo "Página ".$pagina." de ".$total_paginas."</center><br>";

// Usamos das informações calculadas para passar informações em texto para o leitor.

$linha_chegar = (($pagina-1)*$exibe);

// Essa é uma variável que determina por que linha devemos começar a exibir ao leitor,

// porque se ele estiver na página 3 vai querer que comece pela linha onde parou e não

// pela primeira.

for ($linha = 0; $linha != $linha_chegar; $linha++) {

   list ($num_linha, $conteudo_linha) = each ($arquivo_linhas);

}

// For basico para posicionar na linha com conteúdo certo a começar.

// Vou explicar: Loop de $linha igual 0 enquanto $linha for diferente da $linha_chegar

// vai somando um a cada loop

// Ai vem o comando que faz grande parte de tudo.

// List faz com que as variáveis $num_linha receba a CHAVE (KEY) da ARRAY e que a

// $conteudo_linha receba seu VALOR (VALUE)

// Esse EACH faz com que pegue separado cada valor da array.

  

$ultima_linha = ($linha_chegar + $exibe);

if ($ultima_linha > $conta_linhas) {

   $ultima_linha = $conta_linhas;

}

// Aqui a gente mostra de qual linha a qual linha o leitor está lendo. (meio redundante)

// A variável $ultima_linha recebe o valor de onde o posicionador parou mais o quanto

// exibe por página.

// Se ela for maior que o número de linhas do arquivo quer dizer que tá no fim dele,

// entaum ela recebe o valor do total de linhas.

$parar = "não";

while ($parar == "não") {

   list ($numlinha, $conteudolinha) = each ($arquivo_linhas);

   echo $conteudolinha."<br>";

  

   if (($numlinha + 1) == $ultima_linha) {

       $parar = "sim";

   }

}

// Loop principal ele é o sistema da exibição.

// Enquanto parar for igual a não continuar o loop usando o LIST que já expliquei e o EACH

// agora com ECHO para imprimir o conteúdo da linha na página.

// Agora dá pra entender como o LIST funciona não é?

// Se a CHAVE da array mais um (1) for igual ao valor da ultima linha, parar ganha o valor // de sim e o loop acaba.

echo "<BR>";

$nomedoarquivo = "texto.txt";

$handle = fopen ($nomedoarquivo, "r");

$conteudo = fread ($handle, filesize ($nomedoarquivo));

$conteudo = trim($conteudo);

$linhas = explode("\r\n",$conteudo);

fclose ($handle);

$navegacao = 1;

$i=0;

while ($navegacao <= $total_paginas) {

   if ($navegacao != $pagina) {

       echo "<font face=\"verdana\" size=\"1\"> <a href=\"$linhas[$i]\">Pagina $navegacao</a></font>" ;

   } else {

       echo "<font face=\"verdana\" size=\"1\"><b>Pagina $navegacao</b></font>";

   }

   $navegacao++;

   $i++;

}

?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...