..
Tanto em nosso guia para PHP , que em artigos anteriores dedicados à linguagem, já vimos como explorar de várias maneiras a combinação vencedora PHP / MySQL.
Especificamente já vimos como extrair os dados do DB, mas nós temos "esquecido" para resolver um "problema" é muito comum, a saber: quando os registros no banco de dados são particularmente numerosas, como você pode dividi-los em várias páginas?
Neste artigo, na verdade, vamos ver como fazer a paginação de uma grande quantidade de dados dentro de uma determinada tabela em nosso banco de dados.
Vamos dar um exemplo: digamos que você tenha uma tabela chamada agenda consiste em apenas três campos: nome id, e telefone, e dizer que esta tabela é preenchida com 100 registros:

Vamos ver um exemplo prático:
<?
/ / Cria uma variável que define o número de registros
/ / Para exibir em cada página
$ X_pag = 5;
/ / Recuperar o número da página atual.
/ / Geralmente você usar uma querystring
$ Page = $ _GET ['page'];
/ / Verifica se $ page é melhor ...
/ / ... Caso contrário, eu atribuir o valor 1
if ($ page) $ page = 1;
/ / Me conectar ao banco de dados
$ Conn = mysql_connect ("localhost", "user", "password");
mysql_select_db ("db_name", $ conn);
/ / Use mysql_num_rows para contar as linhas em
/ / Na mesa Agenda
$ All_rows = mysql_num_rows (mysql_query ("SELECT id FROM agenda"));
/ / Usando uma chamada simples operação matemática
/ / O número total de páginas
All_pages = ceil $ ($ all_rows / $ x_pag);
/ Cálculo / de qual registro para começar
$ Primeiro = ($ page - 1) * $ x_pag;
/ / Recuperar os registros para a página atual ...
/ / Para utilizar LIMIT $ de primeira e contar até $ x_pag
$ Rs = mysql_query ("SELECT * FROM agenda LIMIT $ primeiro, $ x_pag");
Não mysql_num_rows $ = ($ rs);
if ($ number = 0) {
for ($ x = 0; $ x <$ n, $ x + +) {
$ Row = mysql_fetch_assoc ($ rs);
echo "<table> <tr>";
echo "<td>".
$ Row ['id'].
"</ Td>";
echo "<td>".
$ Row ['name'].
"</ Td>";
echo "<td>".
$ Row ['telefone'].
"</ Td>";
echo "</ tr> </ table>";
}
Else {}
echo "Nenhum registro encontrado!"
}
/ / Se o total de páginas são mais do que um ...
/ Mold / o link para ir e voltar entre páginas diferentes!
if ($ all_pages> 1) {
if ($ page> 1) {
echo "<a href=\"". $_SERVER['PHP_SELF']. "?pag=". $pag-1. "\">";
}
if ($ all_pages> $ page) {
echo "<a href=\"". $_SERVER['PHP_SELF']. "?pag=". $pag + "\"> 1.";
echo "Próxima Página </ a>";
}
}
/ / Conexão com Close to DB
mysql_close ($ conn);
?>
O código está bem comentado e, portanto, não acho que há uma necessidade de maiores explicações.
| |
Curso de Linux
Guia completo para open-source do sistema. -10% De desconto até 2012/06/01. |
| |
Curso de MySQL
Gestão de banco de dados open-source. -15% Desconto até 2012/06/01. |
| |
Curso de PHP
Curso completo para a criação de sites dinâmicos. Desconto de 5% até 2012/06/01. |