![Afirmando](http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif)
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)
- Ademas tiene una hoja de estilos para personalizar el paginador
Código PHP:
class PaginaEvil{
/*************************
*Nombre : PaginaEvil
*Desarrollado por: acoevil
*correo: [email protected]
*Version :1.0 Beta
*para: Foros del web
**************************
Modo de uso:
1: Se realiza un require_once() al archivo .php que contiene la clase
require_once(PaginaEvil);
3: Realizamos la consulta SQL, indicando las tablas a utlizar y las condificones que la
Consulta deberia de cumplir
NOTA: No debemos indicar la clausula limit en la conulta
$SQL="select contacto,login from contactos where login='acoevil'";
4: Relizamos la instancia de la clase PaginaEvil donde debemos indicar los sgte parametros
$pagina=new PaginaEvil("mensajeria","","localhost","root",$SQL,7,$rutaCSS);
* Nombre de la base de datos
* Contraseña de la base de datos
* Servidor
* Nombre de usuario de la db
* $SQL, que es el String que contiene la consulta
* Numero maximo de resultados que se quieren visualizar por pagina
* Por ultimo indicamos la ruta donde se encuentra el css por defecto esta en el mismo
directorio ( estilos.css )
5: Accedemos al metodo retorna filas por medio del objeto $pagina y lo asignamos a recurso
$recurso=$pagina->retorna_filas();
6: Se formatea el texto es decir si queremos que los resultados sagan mediante en tablas
hacemos lo sgte
Aqui por ejemplo se selecciona el nombre de usurio y el concacto del usuario
* Dentro del $row['nombre_campos']; debemos especificar los mismos campos que
se colocaron dentro de la variable ( $SQL )
?><table><?
while($row=mysql_fetch_array($recurso,MYSQL_ASSOC))
{
?> <tr><td><? echo $row['contacto'];?></td></tr><?
?> <tr><td><? echo $row['login'];?></td></tr><?
}
?></table><?
Y la salida seria
-------------------------------------
andres acoevil
pepito acoevil
otro acoevil
|Anterior| 1 2 3 4 |Siguiente|
------------------------------------
7: Por ultimo llamamos el metodo ejecuta por medio del objeto $pagina
$pagina->ejecuta();
De esta forma tendriamos los resultados de una consulta SQL organizada por paginas
/*************************/
//Configuracion de la base de datos
private $nombre_db;
private $contra_db;
private $servidor_db;
private $user_db;
private $conexion_db;
//Configurando el paginador
private $tam_pagina;
private $can_resultados;
private $can_paginas;
private $dir_actual;
//SQL para paginar
private $SQL;
private $campoSQL;
private $rutaCSS;
function __construct($nom,$contra,$servidor,$user,$SQL,$tam_pag="7",$rutaCSS='estilos.css'){
//De la base de datos
$this->nombre_db=$nom; $this->servidor_db=$servidor;
$this->contra_db=$contra; $this->user_db=$user;
//Del SQL
$this->SQL=$SQL;
//Ruta del archivo css
$this->rutaCSS=$rutaCSS;
if(empty($this->SQL)){
echo "La consulta SQL se encuentra vacia";
exit;
}
//Se realiza la conexion a la base de datos
$this->conecta_db();
//Del paginador
$this->tam_pagina=$tam_pag;
$consulta=mysql_query($this->SQL) or die(mysql_error());
$this->can_resultados=mysql_num_rows($consulta);
if($this->can_resultados==0){ exit;}
?> <style type="text/css">@import url(<? echo $this->rutaCSS; ?>);</style> <?
}
private function conecta_db(){
$this->conexion_db=mysql_connect($this->servidor_db,$this->user_db,$this->contra_db)
or die(mysql_error());
mysql_select_db($this->nombre_db,$this->conexion_db) or die(mysql_error());
return $this->conexion_db;
}
public function retorna_filas(){
$pag=$_GET['pag'];
if($pag=="" || $pag==0){
$pag=1;
}
$pag=($pag-1)*$this->tam_pagina;
$resultados=mysql_query($this->SQL." limit ". $pag.",".$this->tam_pagina)
or die(mysql_error());
return $resultados;
}
public function ejecuta(){
$this->can_paginas=ceil($this->can_resultados/$this->tam_pagina);
$pag=$_GET['pag'];
$pagA=$pag-1;
$pagS=$pag+1;
$this->dir_actual=$_SERVER['REQUEST_URI'];
$this->dir_actual=preg_replace('/&pag=(.*)/','',$this->dir_actual);
if(!preg_match('/\\?/',$this->dir_actual)){
$this->dir_actual=$this->dir_actual."?";
}
if($pag>1){
?> <a href="<? echo $this->dir_actual."&pag=".urlencode($pagA); ?>" class="colorea"> Anterior</a><?
}
echo $this->muestra_links($pag);
if($pag<$this->can_paginas){
?> <a href="<? echo $this->dir_actual."&pag=".urlencode($pagS); ?>" class="colorea"> Siguiente</a><?
}
}
private function muestra_links($pag){
$inicio=1;
$fin=5;
if($pag==2){
$inicio=1; $fin=5;
}else if($pag>=3){
$inicio=$pag-2;
$fin=$pag+2;
}
for($inicio;$inicio<=$fin;$inicio++){
$actual='';
if($inicio==$pag){
$actual='#8BB033';
}
?> <a href="<? echo $this->dir_actual."&pag=".urlencode($inicio);?>" class="colorea" style="background:<? echo $actual;?>"><? echo $inicio; ?></a><?
if($inicio==$this->can_paginas){
break;
}
}
}
}
/*EJEMPLO COMPLETO DE USO*/
$SQL="select contacto from contactos where login='acoevil'";
$pagina=new PaginaEvil("mensajeria","","localhost","root",$SQL,7);
$recurso=$pagina->retorna_filas();
?><table><?
while($row=mysql_fetch_array($recurso,MYSQL_ASSOC))
{
?> <tr><td><? echo $row['contacto'];?></td></tr><?
}
?></table><?
$pagina->ejecuta();
?>
![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
Este es el css estilos.css
a.colorea{
border:1px solid #123456; /*Bordes de los cuadros que encierran los links |1| */
padding:2px; /*Relleno desde el numero hasta el cuadro | 1 | */
background:#333; /*Color de fondo de cada uno de los links*/
color:#fff; /*Color de la letra*/
text-decoration:none; /*Para que no salga con subrayado*/
}
a.colorea:hover{
background:#5d6e7A; /*Para que cambie el background mientras el puntero esta encima del boton*/
}
Aqui la imagen jeje
http://s3.subirimagenes.com/fotos/pr...95303ejemo.jpg