Cita: $(document).ready(function($){
$('#CAPA_A_MOSTRAR').dataTable(
{"bJQueryUI": true,
"sPaginationType": "full_numbers"
})
});
bueno aunque esto es Javascript( Jquery), te puede servir pero si lo que quieres es con PHP
aqui te dejo una clase que "hice yo"
Código PHP:
<?php
CopyRight: Armando Herrera
class paginador extends conexion {
var $numRegistros = 10;
var $inicio = 0;
var $totalRegistros;
var $totalPaginas;
var $conexion;
var $query = NULL;
var $pagina;
var $tagSiguiente = "»";
var $tagAtras = "«";
var $v_datos;
var $variablesGet;
function __construct($cnx){
$this->conexion = $cnx;
}
function totalRegistros(){
$this->conexion->ejecutarConsulta($this->query);
$this->totalRegistros = $this->conexion->numRows();
}
public function totalPaginas(){
if($this->totalRegistros > 0){
$this->totalPaginas = ceil($this->totalRegistros / $this->numRegistros);
}else{
$this->totalPaginas = 1;
}
}
function paginar($query){
if(empty($_GET[$this->pagina]) || !is_numeric($_GET[$this->pagina])){
header("Location: ".$_SERVER['PHP_SELF']."?".$this->pagina."=1".$this->agregarGet());
exit;
}
$this->query = $query;
$this->totalRegistros();
$this->totalPaginas();
}
function mostrarPaginacion(){
if($this->totalRegistros) {
echo '<ul>';
if(($_GET[$this->pagina] - 1) > 0) {
//echo "<li class=\"num\"><a href=\"?".$this->pagina."=".($_GET[$this->pagina]-1).$this->agregarGet()."\">".$this->tagAtras."</a></li>";
echo "<li class=\"num\"><a href=\"".($_GET[$this->pagina]-1).$this->agregarGet()."\">".$this->tagAtras."</a></li>";
}
for ($i=1; $i <= $this->totalPaginas; $i++){
if ($_GET[$this->pagina] == $i) {
$temp[$i] = "<li class=\"num\"><b>".$_GET[$this->pagina]."</b></li> ";
} else {
//$temp[$i] = "<li class=\"num\"><a href=\"?".$this->pagina."=".$i.$this->agregarGet()."\" >".$i."</a></li>";
$temp[$i] = "<li class=\"num\"><a href=\"".$i.$this->agregarGet()."\" >".$i."</a></li>";
}
}
echo implode(" ", $temp);
if(($_GET[$this->pagina] + 1)<=$this->totalPaginas) {
//echo "<li class=\"num\"><a href=\"?".$this->pagina."=".($_GET[$this->pagina]+1).$this->agregarGet()."\" >".$this->tagSiguiente."</a></li>";
echo "<li class=\"num\"><a href=\""./*$this->pagina*/($_GET[$this->pagina]+1).$this->agregarGet()."\" >".$this->tagSiguiente."</a></li>";
}
echo '</ul>';
}
}
function agregarGet(){
switch(func_num_args()){
case 1:
foreach($this->variablesGet as $varGet)
$get.= "&$varGet=".$GLOBALS[$varGet];
return $get;
break;
default:
for($i = 0; $i < func_num_args(); $i++){
$this->variablesGet[] = func_get_arg($i);
}
break;
}
}
function mostrarContenido(){
$this->inicio = ($_GET[$this->pagina]-1) * $this->numRegistros;
$nuevaConsulta = $this->query." LIMIT ".$this->inicio.",".$this->numRegistros;
$this->conexion->ejecutarConsulta($nuevaConsulta);
}
function vectorDatos(){
$this->inicio = ($_GET[$this->pagina]-1) * $this->numRegistros;
$nuevaConsulta = $this->query." LIMIT ".$this->inicio.",".$this->numRegistros;
$this->conexion->ejecutarConsulta($nuevaConsulta);
if($this->totalRegistros > 0){
$j = 0;
while($dt = $this->conexion->fetchAssoc()){
$indices = array_keys($dt);
//echo $indices[0];
for($i=0; $i<=count($indices); $i++){
$this->v_datos[$j][$indices[$i]] = $dt[$indices[$i]];
}
$j++;
}
return $this->v_datos;
}else{
return false;
}
return false;
}
}
?>
y aqui la clase conexion!
Código PHP:
class conexion{
private $conexionId;
private $baseDatos;
private $servidor;
private $passwordBD;
private $usuarioBD;
private $consultaID;
private $error;
function conexion(){
try{
$this->baseDatos = BD;
$this->servidor = SERVIDOR_BD;
$this->usuarioBD = USUARIO_BD;
$this->passwordBD = PASSWORD_BD;
}catch(Exception $error){
$this->error = $error->getMessage();
}
}
function conectar(){
try{
$this->conexionId = @mysql_connect($this->servidor, $this->usuarioBD, $this->passwordBD);
if (!$this->conexionId) {
$this->error = "Error en la Conexion";
return 0;
}
if (!@mysql_select_db($this->baseDatos, $this->conexionId)) {
$this->error = "Imposible abrir ".$this->baseDatos ;
return 0;
}
}catch(Exception $error){
$this->error = $error->getMessage();
}
return $this->conexionId;
}
function ejecutarConsulta($consulta){
try{
if($this->conectar()){
if(!empty($consulta)){
$this->consultaID = @mysql_query(($consulta), $this->conexionId);
$id = mysql_insert_id();
$this->cerrarConexion();
}
}
}catch(Exception $error){
$this->error = $error->getMessage();
}
return $id;
}
function fetchArray(){
try{
$array = @mysql_fetch_array($this->consultaID);
}catch(Exception $error){
$this->error = $error->getMessage();
}
return($array);
}
function numRows(){
try{
$array = @mysql_num_rows($this->consultaID);
}catch(Exception $error){
$this->error = $error->getMessage();
}
return($array);
}
function fetchAssoc(){
try{
$array = @mysql_fetch_assoc($this->consultaID);
}catch(Exception $error){
$this->error = $error->getMessage();
}
return($array);
}
private function cerrarConexion(){
try{
if ($this->conexionId) {
@mysql_close($this->conexionId);
}
}catch(Exception $error){
$this->error = $error->getMessage();
}
}
}
y aqui su uso:
Código PHP:
//Ejemplo de su uso:
require_once("Clase.conexion.php");
require_once("Clase.paginador.php");
$cnx = new conexion();
$q_noticias = "SELECT * FROM TABLA ORDER BY fecha DESC";
$pg = new paginador($cnx);
$pg->pagina = "p"; //variable GET de paginacion
$pg->numRegistros = 5; //Cantidad de registros
$pg->paginar($q_noticias);
$pg->mostrarContenido();
$pg->mostrarPaginacion(); //Esto p muestra la paginacion!