Paginação Com Ordenação Nos Headers Das Colunas
<?php $con = mysql_connect('localhost', 'root', '123'); mysql_select_db( 'price', $con ); $sql = "SELECT `id`, `letra` FROM `alfabeto`"; $query = mysql_query( $sql )or die( mysql_error() ); $in = getGet('in') ? getGet('in') : 0; $por_pagina = 5; $inicio = $in*$por_pagina; $order = getGet('by') ? ' ORDER BY '.getGet('by').' '.getGet('order') : ''; $sql = "SELECT `id`, `letra` FROM `alfabeto` {$order} LIMIT {$inicio}, {$por_pagina}"; $query_paginada = mysql_query( $sql )or die( mysql_error() ); $total = mysql_num_rows( $query ); echo 'Existem '.$total.' letras cadastradas! '; echo '<table> <thead> <tr> <th><a href="?in='.$in.'&order=asc&by=id">ID</a></th> <th><a href="?in='.$in.'&order=asc&by=letra">Letra</a></th> </tr> </thead> <tbody> '; while( $dados = mysql_fetch_assoc( $query_paginada ) ) { echo '<tr><td>'.$dados['id'].'</td><td>'.$dados['letra'].'</td></tr>'; } echo '</tbody></table>'; $order = getGet('by') ? '&order='.getGet('order').'&by='.getGet('by') : ''; for( $i=0, $paginas=$total/$por_pagina; $i<$paginas; $i++ ) echo '<a href="?in='.$i.$order.'">'.$i.'</a> - '; function getGet( $key ){ return isset( $_GET[ $key ] ) ? $_GET[ $key ] : null; }
estrutura
-- -- 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');