Jump to content
Fórum Script Brasil
  • 0

Paginação


Guest Lukas

Question

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 to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 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

Edited by Guilherme014
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...