tabela com paginação php
pessoal sou novo com php , na faculdade não sitarao quase nada de php entao estou por conta , criei uma tabela onde tenho algums codigos que fazer a paginação , seleciona o numero de registros que vai aparecer por pesquisa e um link no header onde mostra os dados em ordem id ou alfabetica , essa tabela e so um teste , porem quando faço a paginaçao com 5 registros mostra pra min tres paginas mas quando clico na ultima pagina , n mostra nada e quandoclico na segunda pagina , mostra os ultimos registros, e ainda quando clico na segunda pagina e peço para ele organizar em ordem id ou alfabetica , a pagina volta para a primeira pagina :/
codigos a seguir :
sql:
-- phpMyAdmin SQL Dump
-- version 4.0.9
-- http://www.phpmyadmin.net
--
-- Máquina: 127.0.0.1
-- Data de Criação: 09-Abr-2016 às 22:36
-- Versão do servidor: 5.5.34
-- versão do PHP: 5.4.22
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de Dados: teste2
--
-- --------------------------------------------------------
--
-- Estrutura da tabela alfabeto
--
CREATE TABLE IF NOT EXISTS `alfabeto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`letra` char(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
--
-- Extraindo dados da tabela alfabeto
--
INSERT INTO alfabeto (id, letra) VALUES
(1, 'a'),
(2, 'w'),
(3, 's'),
(4, 'd'),
(5, 'x'),
(6, 'f'),
(7, 't'),
(8, 'h'),
(9, 'i'),
(10, 'j'),
(11, 'k'),
(12, 'l'),
(13, 'z');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
index.php:
<?php
include('admin/config/conexao.php');
$sql = mysqli_query($conecta,"SELECT `id`, `letra` FROM `alfabeto`")or die (mysqli_error());
$total = mysqli_num_rows( $sql );
//verifica a página atual caso seja informada na URL, senão atribui como 1ª página
$pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
$por_pagina = $_POST['limit'];
if($por_pagina == null){
$por_pagina = 10;
}
//calcula o número de páginas arredondando o resultado para cima
$numPaginas = ceil($total/$por_pagina);
//variavel para calcular o início da visualização com base na página atual
$inicio = ($por_pagina*$pagina)-$por_pagina;
$order = getGet('by') ? ' ORDER BY '.getGet('by').' '.getGet('order') : '';
$sql = mysqli_query($conecta,"SELECT `id`, `letra` FROM `alfabeto` $order LIMIT $inicio,$por_pagina")or die (mysqli_error());
$total = mysqli_num_rows( $sql );
echo 'Existem '.$total.' registros listados ';
echo "
<form action='index2.php' method='post'>
<select name='limit' value='5'>
<option value='5'>5</option>
<option value='10'>10</option>
<option value='20'>20</option>
<option value='100'>100</option>
</select>
<input type='submit' value='Submit me!'' />
</form>
";
echo '<table>
<thead>
<tr>
<th><a href="?order=asc&by=id">ID</a></th>
<th><a href="?order=asc&by=letra">Letra</a></th>
</tr>
</thead>
<tbody>
';
while( $dados = mysqli_fetch_assoc( $sql ) )
{
echo '<tr><td>'.$dados['id'].'</td><td>'.$dados['letra'].'</td></tr>';
}
echo '</tbody></table>';
//exibe a paginação
for($i = 1; $i < $numPaginas + 1; $i++) {
echo "<a href='index2.php?pagina=$i'>".$i."</a> ";
}
function getGet( $key ){
return isset( $_GET[ $key ] ) ? $_GET[ $key ] : null;
}
//inicia paginação
?>
conexao.php:
<?php
// Conexão com o banco de dados
$conecta = new mysqli('localhost', 'root', '', 'teste2') or die("Error " . mysqli_error($conecta));
?>
eu vi essa tabela e pretendo criar uma igual , caso consiga , nunca mais vou precisar criar codigo para tabelas , alguem pode me ajudar ?/applications/core/interface/imageproxy/imageproxy.php?img=http://quanticheart.96.lt/tabela2.png&key=d1ee58b52149e7a5c1633aee44d2edb4dcb25e143797349cf468688b1984a447" alt="tabela2.png" />/applications/core/interface/imageproxy/imageproxy.php?img=http://quanticheart.96.lt/tabela.png&key=7d8ba603f13555140df16d5f4f8ddb3a9f29cb395c66543d7983394e18c2e807" alt="tabela.png" />
Discussão (0)
Carregando comentários...