F
foxtier494
Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola amigos necesito por favor una ayuda con este código estaba buscando como hacer una pagiación con php y que sea poo de forma que cuando la persona valla pasando las paginas se vallas desapareciendo y apareciendo nuevos números en la lista de paginas y se matenga estable con una longitud de paginas de 10 paginas pero si son mas pues por decir que 5 es el limite a mostrar ejemplo ( 1 2 3 4 5 ) entonces el usuario llega a 5 desaparence los 12345 y si hay mas contenido aparece 6 7 8 9 10 muy bien la paginación funciona muy bien pero tengo es el problema en mostrar la consulta de la db porque en el tutorial el imprime la consulta con print_r( la consulta );
pero si quiero hacer una impresión con mysql_fetch_array,assoc u otros para mostrarlos con while no funciona y tengo rato itentando y no se me ocurre nada es primera ves que utilizo el print_r aqui les dejo los vídeos para que vean como funciona y que funciona pero no puedo mostrar las consultas a menos que sea con print_r no tengo mucha experiencia con esto pero por favor que alguien me ayude aquí les dejo los vídeos
Video 1
PHP😛OO - Crear un Paginador 1 - YouTube
Video 2
PHP😛OO - Crear un Paginador 2 (Crear rango de páginas) - YouTube
para que se ahorren en código yo se los monto solo tiene que hacer la db y probar
db.php
pagina.php
paginar.php
pero si quiero hacer una impresión con mysql_fetch_array,assoc u otros para mostrarlos con while no funciona y tengo rato itentando y no se me ocurre nada es primera ves que utilizo el print_r aqui les dejo los vídeos para que vean como funciona y que funciona pero no puedo mostrar las consultas a menos que sea con print_r no tengo mucha experiencia con esto pero por favor que alguien me ayude aquí les dejo los vídeos
Video 1
PHP😛OO - Crear un Paginador 1 - YouTube
Video 2
PHP😛OO - Crear un Paginador 2 (Crear rango de páginas) - YouTube
para que se ahorren en código yo se los monto solo tiene que hacer la db y probar
db.php
PHP:
<?php
class Db{
public static function connect()
{
if(!$link = mysql_connect("localhost","root"," "))
{
die('ERROR al conectar con el servidor');
}
if(!mysql_select_db(DB_NAME))
{
die('ERROR al selecionar la DB');
}
return $link;
}
}
?>
pagina.php
PHP:
<?php
require_once 'config.php';
require_once 'db.php';
require_once 'paginador.php';
?>
<html>
<head>
<meta charset="utf-8">
<title>Paginador</title>
</head>
<body>
<pre>
<?php
$paginador = new Paginador();
$pagina = $_GET['pagina'];
print_r($paginador->paginar("select * from usuarios", $pagina));
$params = $paginador->getRangoPaginacion();
?>
</pre>
<ul>
<!------------------- Primero y anterior ---------------------->
<li style="display:inline; margin-right:5px;">
<?php if($params['primero']){ ?>
<a href="?pagina=<?php echo $params['primero']; ?>">Primero</a>
<?php }else{
echo "Primero";
}
?>
</li>
<li style="display:inline; margin-right:5px;">
<?php if($params['anterior']){ ?>
<a href="?pagina=<?php echo $params['anterior']; ?>">Anterior</a>
<?php }else{
echo "Anterior";
}
?>
</li>
<!--------------------------------------------------------------->
<!----------------------- Numeracion ---------------------------->
<li style="display:inline; margin-right:5px;">
<?php for($i = 0; $i <= count($params['rango']); $i++){ ?>
<?php if($params['actual'] != $params['rango'][$i]){ ?>
<a href="?pagina=<?php echo $params['rango'][$i]; ?>">
<?php echo $params['rango'][$i]; ?>
</a>
<?php }else{ ?>
<?php echo $params['rango'][$i]; ?>
<?php
}
}
?>
</li>
<!------------------------------------------------------------->
<!------------------- Siguiente y Ultimo ---------------------->
<li style="display:inline; margin-right:5px;">
<?php if($params['siguiente']){ ?>
<a href="?pagina=<?php echo $params['siguiente']; ?>">Siguiente</a>
<?php
}
else
{
echo "Siguiente";
}?>
</li>
<li style="display:inline; margin-right:5px;">
<?php if($params['ultimo']){ ?>
<a href="?pagina=<?php echo $params['ultimo']; ?>">Ultimo</a>
<?php
}else
{
echo "Ultimo";
}?>
</li>
<!------------------------------------------------------------->
</ul>
</body>
</html>
paginar.php
PHP:
<?php
class Paginador
{
private $_datos;
private $_paginacion;
public function __CONSTRUCT()
{
$this->_datos = array();
$this->_paginacion = array();
}
public function paginar($query, $pagina = false, $limite = false)
{
if($limite && is_numeric($limite))
{
$limite = $limite;
}else
{
$limite = 10;
}
if($pagina && is_numeric($pagina))
{
$pagina = $pagina;
$inicio = ($pagina - 1) * $limite;
}else
{
$pagina = 1;
$inicio = 0;
}
$consulta = mysql_query($query, Db::connect());
$registros = mysql_num_rows($consulta);
$total = ceil($registros / $limite);
$query = $query . " LIMIT $inicio, $limite";
$consulta = mysql_query($query, Db::connect());
while($regs = mysql_fetch_assoc($consulta))
{
$this->_datos[] = $regs;
}
$paginacion = array();
$paginacion['actual'] = $pagina;
$paginacion['total'] = $total;
if($pagina > 1)
{
$paginacion['primero'] = 1;
$paginacion['anterior'] = $pagina - 1;
}else
{
$paginacion['primero'] = '';
$paginacion['anterior'] = '';
}
if($pagina < $total)
{
$paginacion['ultimo'] = $total;
$paginacion['siguiente'] = $pagina + 1;
}else
{
$paginacion['ultimo'] = '';
$paginacion['siguiente'] = '';
}
$this->_paginacion = $paginacion;
return $this->_datos;
}
public function getRangoPaginacion($limite = false)
{
if($limite && is_numeric($limite))
{
$limite = $limite;
}else
{
$limite = 10;
}
$total_paginas = $this->_paginacion['total'];
$pagina_selecionada = $this->_paginacion['actual'];
$rango = ceil($limite / 2);
$paginas = array();
$rango_derecho = $total_paginas - $pagina_selecionada;
if($rango_derecho < $rango)
{
$resto = $rango - $rango_derecho;
}else
{
$resto = 0;
}
$rango_izquierdo = $pagina_selecionada - ($rango + $resto);
for($i=$pagina_selecionada; $i > $rango_izquierdo; $i--)
{
if($i == 0)
{
break;
}
$paginas[] = $i;
}
sort($paginas);
if($pagina_selecionada < $rango)
{
$rango_derecho = $limite;
}else
{
$rango_derecho = $pagina_selecionada + $rango;
}
for($i = $pagina_selecionada + 1; $i <= $rango_derecho; $i ++)
{
if($i > $total_paginas)
{
break;
}
$paginas[] = $i;
}
$this->_paginacion['rango'] = $paginas;
return $this->_paginacion;
}
public function getPaginacion()
{
if($this->_paginacion)
{
return $this->_paginacion;
}else
{
return false;
}
}
}
?>