Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ualace Moura

[Resolvido] Criar paginação em php

Recommended Posts

Olá prezados mais uma vez eu aqui.

Bom desta vez estou com a seguinte questão a ser resolvida. Como criar paginação em php?.

 

Tenho meu sistema em php para exibir os resultados da tabela porem necessito criar paginação pois terei muitos resultados a serem exibidos.

 

Como nunca criei paginação e nem sei por onde começa, apesar de ter seguido alguns tutorias sem sucesso.

segue o meu código.

<?php 

$conexao = mysql_connect("localhost","usuario","senha"); 
$db = mysql_select_db("banco"); 

$sql = "SELECT * FROM noticia_reporter ORDER BY id DESC LIMIT 15"; 
$resultado = mysql_query($sql) 
or die 
("Não foi possível realizar a consulta ao banco de dados"); 

echo "<table cellspacing=1 cellpadding=3 border=0 bgcolor=#165480 WIDTH=870>"; 
echo "<tr>"; 
echo "<td width=10 bgcolor=#CCCCCC>ID:</td>"; 
echo "<td width=300 bgcolor=#CCCCCC>Nome:</td>"; 




echo "<td width=30 bgcolor=#CCCCCC>Data e Hora:</td>"; 


echo "<td width=6 bgcolor=#CCCCCC>Alterar</td>"; 
echo "<td width=6 bgcolor=#CCCCCC>Excluir</td>"; 
echo "</tr>"; 

while ($linha=mysql_fetch_array($resultado)) 

{ 
$id = $linha["id"]; 
$nome = $linha["nome"]; 




$data = $linha["data"]; 
$hora = $linha["hora"]; 






echo "<tr>"; 
echo "<td width=10 bgcolor=#ffffff>$id<br></td>"; 
echo "<td width=300 bgcolor=#ffffff>$nome<br></td>"; 




echo "<td width=100 bgcolor=#ffffff>$data às $hora<br></td>"; 



echo "<td width=6 bgcolor=#ffffff><a href='ler_noticia_reporter.php?id=$id' target='meuiframe'>Ler</a><br></td>"; 
echo "<td width=6 bgcolor=#ffffff><a href='excluir_esquerda.php?id=$id'>Excluir</a><br></td>"; 
echo "</tr>"; 

} 
echo "</table>"; ?>

 

Bom através dele consigo exibir as informações do bd. E gostaria desta força para implantar a paginação nesse código.

Desde já agradeço.

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que criar uma função para a paginação, não é obrigatório mais fica mais limpo o código e melhor de se entender depois, e se for usar em outras pesquisa pra não se repetir também.

 

funcao_links.php:

 


<?php


function gerar_links($sql, $cur_page, $num_pages) {

$page_links = '';

//se esta pagina não for a primeira, entao gera o link "previows"
   if ($cur_page > 1) {

	$page_links .= '<a href="' . $_SERVER['PHP_SELF'] . '?query=' . $sql .  '&page' . ($cur_page - 1) . '"><-</a> ';

}
else {

	$page_links .= '<- ';

}

// Faz um loop através das paginas, gerando os links com os numeros das paginas
   for ($i = 1; $i <= $num_pages; $i++) {

     if ($cur_page == $i) {

       $page_links .= ' ' . $i;
     }
     else {
       $page_links .= ' <a href="' . $_SERVER['PHP_SELF'] . '?query=' . $sql . '&page=' . $i . '"> ' . $i . '</a>';
     }
   }

   //Se esta pagina não for a última, gera o link next (próximo)
   if ($cur_page < $num_pages) {

     $page_links .= ' <a href="' . $_SERVER['PHP_SELF'] . '?query=' . $sql . '&page=' . ($cur_page + 1) . '">-></a>';
   }
   else {
     $page_links .= ' ->';
   }

   return $page_links;
 }

?>

 

 

Agora vem o código que você terá que colocar dentro do seu código que você posto ai:

 


//calcula as informações de paginação
 $cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
 $results_per_page = 5;
 $skip = (($cur_page - 1) * $results_per_page);

$result = mysqli_query($dbc, $sql);

//calcula o total de resultados pelas linhas
 $total = mysqli_num_rows($result);

 //calcula o numero total de paginas para gerar os links
 $num_pages = ceil($total / $results_per_page);

" LIMIT $skip, $results_per_page"; //a parte do LIMIT você tem que deixar com estas variaveis para quando você clicar na pagina 'tal' a consulta saber de qual resultado ele começará a exibir

//chamando a função para gerar links para as paginas
 if ($num_pages > 1) {

  echo gerar_links($sql, $cur_page, $num_pages);

 }

 

 

Bem agora é só mudar a variavel de conexão do banco de dados e fazer os ajustes necessários.

 

e esqueci de dizer voce tem que adicionar o script da função para gerar os links:

 


require_once('funcao_links.php');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado Tiago Emerick Fiz da seguinte forma e apresentou esses erros.

 

PHP Warning: mysqli_query() expects parameter 1 to be mysqli, null given in

PHP Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in

 

Forma que implementei o código

<?php 

$conexao = mysql_connect("host","usuario","senha"); 
$db = mysql_select_db("db"); 

$sql = "SELECT * FROM noticia_reporter ORDER BY id DESC";

//calcula as informações de paginação
 $cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
 $results_per_page = 5;
 $skip = (($cur_page - 1) * $results_per_page);

$result = mysqli_query($dbc, $sql);

//calcula o total de resultados pelas linhas
 $total = mysqli_num_rows($result);

 //calcula o numero total de paginas para gerar os links
 $num_pages = ceil($total / $results_per_page);

" LIMIT $skip, $results_per_page"; //a parte do LIMIT você tem que deixar com estas variaveis para quando você clicar na pagina 'tal' a consulta saber de qual resultado ele começará a exibir

//chamando a função para gerar links para as paginas
 if ($num_pages > 1) {

         echo gerar_links($sql, $cur_page, $num_pages);

 }


$resultado = mysql_query($sql) 
or die 
("Não foi possível realizar a consulta ao banco de dados"); 

echo "<table cellspacing=1 cellpadding=3 border=0 bgcolor=#165480 WIDTH=870>"; 
echo "<tr>"; 
echo "<td width=10 bgcolor=#CCCCCC>ID:</td>"; 
echo "<td width=300 bgcolor=#CCCCCC>Nome:</td>"; 




echo "<td width=30 bgcolor=#CCCCCC>Data e Hora:</td>"; 


echo "<td width=6 bgcolor=#CCCCCC>Alterar</td>"; 
echo "<td width=6 bgcolor=#CCCCCC>Excluir</td>"; 
echo "</tr>"; 

while ($linha=mysql_fetch_array($resultado)) 

{ 
$id = $linha["id"]; 
$nome = $linha["nome"]; 




$data = $linha["data"]; 
$hora = $linha["hora"]; 






echo "<tr>"; 
echo "<td width=10 bgcolor=#ffffff>$id<br></td>"; 
echo "<td width=300 bgcolor=#ffffff>$nome<br></td>"; 




echo "<td width=100 bgcolor=#ffffff>$data às $hora<br></td>"; 



echo "<td width=6 bgcolor=#ffffff><a href='ler_noticia_reporter.php?id=$id' target='meuiframe'>Ler</a><br></td>"; 
echo "<td width=6 bgcolor=#ffffff><a href='excluir_esquerda.php?id=$id'>Excluir</a><br></td>"; 
echo "</tr>"; 
} 
echo "</table>"; ?>

require_once('funcao_links.php');

 

Acho que preciso de muita ajuda rsrs. Agradeço muito pela ajuda que está me dando. Só mais uma forcinha vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muda isso: $conexao = mysql_connect("localhost","usuario","senha");

$db = mysql_select_db("banco"); para isto $dbc = ("localhost","usuario","senha", "banco");

 

 

Prezado agora o seguinte erro persiste.

 

PHP Parse error: syntax error, unexpected ',' in E:\Home\spcomunicacao\Web\aindahojecom\system\controle_noticia_reporter.php on line 134

 

e mesmo que eu coloque o script como antes ele continua aparecendo.

 

<?php 

$dbc = ("localhost","usuario","senha", "banco"); 

$sql = "SELECT * FROM noticia_reporter ORDER BY id DESC";

//calcula as informações de paginação
$cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
$results_per_page = 5;
$skip = (($cur_page - 1) * $results_per_page);

$result = mysqli_query($dbc, $sql);

//calcula o total de resultados pelas linhas
$total = mysqli_num_rows($result);

//calcula o numero total de paginas para gerar os links
$num_pages = ceil($total / $results_per_page);

" LIMIT $skip, $results_per_page"; //a parte do LIMIT você tem que deixar com estas variaveis para quando você clicar na pagina 'tal' a consulta saber de qual resultado ele começará a exibir

//chamando a função para gerar links para as paginas
if ($num_pages > 1) {

echo gerar_links($sql, $cur_page, $num_pages);

}


$resultado = mysql_query($sql) 
or die 
("Não foi possível realizar a consulta ao banco de dados"); 

echo "<table cellspacing=1 cellpadding=3 border=0 bgcolor=#165480 WIDTH=870>"; 
echo "<tr>"; 
echo "<td width=10 bgcolor=#CCCCCC>ID:</td>"; 
echo "<td width=300 bgcolor=#CCCCCC>Nome:</td>"; 




echo "<td width=30 bgcolor=#CCCCCC>Data e Hora:</td>"; 


echo "<td width=6 bgcolor=#CCCCCC>Alterar</td>"; 
echo "<td width=6 bgcolor=#CCCCCC>Excluir</td>"; 
echo "</tr>"; 

while ($linha=mysql_fetch_array($resultado)) 

{ 
$id = $linha["id"]; 
$nome = $linha["nome"]; 




$data = $linha["data"]; 
$hora = $linha["hora"]; 






echo "<tr>"; 
echo "<td width=10 bgcolor=#ffffff>$id<br></td>"; 
echo "<td width=300 bgcolor=#ffffff>$nome<br></td>"; 




echo "<td width=100 bgcolor=#ffffff>$data às $hora<br></td>"; 



echo "<td width=6 bgcolor=#ffffff><a href='ler_noticia_reporter.php?id=$id' target='meuiframe'>Ler</a><br></td>"; 
echo "<td width=6 bgcolor=#ffffff><a href='excluir_esquerda.php?id=$id'>Excluir</a><br></td>"; 
echo "</tr>"; 
} 
echo "</table>"; ?>

require_once('funcao_links.php');

 

 

será que fiz algo errado? mesmo tirando as virgulas que mostra no erro ele continua a aparecer. não entendo prq não mostra outros erros já que tiro as virgulas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados muito obrigado pela ajuda, não consegui resolver o problema mas achei um outro geito, é q eu tava com uma certa urgencia, é bem simples mas me serve. vai o código que funcionou.

<?php
$conn = mysql_connect("localhost","usuario","senha");
$banco = mysql_select_db("banco");
?>


<?php
$busca = "SELECT * FROM noticia_reporter ORDER BY id DESC";
?>



<?php
$total_reg = "6"; // número de registros por página
?>



<?php
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
?>



<?php
$inicio = $pc - 1;
$inicio = $inicio * $total_reg;
?>



<?php
$limite = mysql_query("$busca LIMIT $inicio,$total_reg");
$todos = mysql_query("$busca");

$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas

// vamos criar a visualização
echo "<table cellspacing=1 cellpadding=3 border=0 bgcolor=#165480 WIDTH=870>"; 
echo "<tr>"; 
echo "<td width=10 bgcolor=#CCCCCC>ID:</td>"; 
echo "<td width=300 bgcolor=#CCCCCC>Nome:</td>"; 




echo "<td width=30 bgcolor=#CCCCCC>Data e Hora:</td>"; 


echo "<td width=6 bgcolor=#CCCCCC>Alterar</td>"; 
echo "<td width=6 bgcolor=#CCCCCC>Excluir</td>"; 
echo "</tr>";

while ($dados = mysql_fetch_array($limite)) {
$id = $dados["id"]; 
$nome = $dados["nome"]; 




$data = $dados["data"]; 
$hora = $dados["hora"]; 

echo "<tr>"; 
echo "<td width=10 bgcolor=#ffffff>$id<br></td>"; 
echo "<td width=300 bgcolor=#ffffff>$nome<br></td>"; 




echo "<td width=100 bgcolor=#ffffff>$data às $hora<br></td>"; 



echo "<td width=6 bgcolor=#ffffff><a href='ler_noticia_reporter.php?id=$id' target='meuiframe'>Ler</a><br></td>"; 
echo "<td width=6 bgcolor=#ffffff><a href='excluir_esquerda.php?id=$id'>Excluir</a><br></td>"; 
echo "</tr>";
}
echo "</table>";
// agora vamos criar os botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
?>

 

 

Vlw msm muito obrigado. Tá ai o código com paginação simples pra quem quiser usar tb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.