Foros del Web » Programando para Internet » PHP »

Funcion Paginar

Estas en el tema de Funcion Paginar en el foro de PHP en Foros del Web. Tengo un pequeño problema con la función paginar, haber si alguien me puede echar un cable. Tengo un archivo paginar.php con el texto siguiente: <? ...
  #1 (permalink)  
Antiguo 06/10/2010, 01:42
 
Fecha de Ingreso: marzo-2006
Mensajes: 133
Antigüedad: 18 años, 1 mes
Puntos: 6
Funcion Paginar

Tengo un pequeño problema con la función paginar, haber si alguien me puede echar un cable.

Tengo un archivo paginar.php con el texto siguiente:

<?



class paginar {
# Obtener el total de resultados
function mostrar($a) {
$this->mostrar = $a ;
}
function paginar($a) {
$this->codigo = $a ;
$con = mysql_query(eregi_replace('select (.+) from','select count(*) from',$this->codigo)) ;
$this->total_resultados = mysql_result($con,0,0) ;
}
# Procesar el código SQL
function procesar_codigo() {
$this->total_pag = ceil($this->total_resultados/$this->mostrar) ;
switch(true) {
case $_GET[pag] < 1 :
$_GET[pag] = 1 ;
break ;
case $_GET[pag] > $this->total_pag :
$_GET[pag] = $this->total_pag ;
}
$desde = ereg('[0-9]+',$_GET[pag]) ? ($_GET[pag] - 1) * $this->mostrar : 0 ;
$con = mysql_query($this->codigo." limit $desde,$this->mostrar") ;
return $con ;
}
# Crear la URL evitando repetir varias veces la variable de página (ej. index.php?id=noticias&n=1&pag=1)
function url() {
foreach ($_GET as $nombre => $valor) {
if ($nombre != 'pag') {
$valor = urlencode($valor) ;
$url .= "$nombre=$valor&" ;
}
}
return $url ;
}
function crear_paginas() {
# Para los que usan enlaces tipo www.pagina.com/?seccion=descargas
if(strstr($_SERVER[PHP_SELF],'/index.php')) {
$_SERVER[PHP_SELF] = str_replace('/index.php','/',$_SERVER[PHP_SELF]) ;
}
$max_paginas = 8 ;
$url = $this->url() ;
$pag_anterior = $_GET[pag] - 1 ;
if($pag_anterior >= 1) {
$paginas[] = "<a href=\"$_SERVER[PHP_SELF]?$url"."pag=1\" class=\"eforo\">Primera</a>" ;
$paginas[] = "<a href=\"$_SERVER[PHP_SELF]?$url"."pag=$pag_anterior\" class=\"eforo\">«</a>" ;
}
if($this->total_pag > $max_paginas) {
$this->total_pag_mostrar = $max_paginas ;
}
else {
$this->total_pag_mostrar = $this->total_pag ;
}
$pag_desde = ($_GET[pag]-$max_paginas/2) ;
if($pag_desde < 1) {
$pag_desde = 1 ;
}
$pag_hasta = ($_GET[pag]+$max_paginas/2) ;
if($pag_hasta > $this->total_pag) {
$pag_hasta = $this->total_pag ;
}
for($a = $pag_desde ; $a <= $pag_hasta ; $a++) {
$paginas[] = ($a != $_GET[pag]) ? "<a href=\"$_SERVER[PHP_SELF]?$url"."pag=$a\" class=\"eforo\">$a</a>" : $a ;
}
$pag_siguiente = $_GET[pag] + 1 ;
if($pag_siguiente <= $this->total_pag) {
$paginas[] = "<a href=\"$_SERVER[PHP_SELF]?$url"."pag=$pag_siguiente\" class=\"eforo\">»</a>" ;
$paginas[] = "<a href=\"$_SERVER[PHP_SELF]?$url"."pag=$this->total_pag\" class=\"eforo\">Ultima</a>" ;
}
$paginas =
'<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Páginas: <b>'.$this->total_pag.'</b></td>
<td><div align="right">'.@implode(', ',$paginas).'</div></td>
</tr>
</table>
' ;
echo utf8_encode($paginas) ;
}
}
?>


Luego en el archivo en el que quiero que haga la paginacion pongo los siguientes textos:

include("functions/paginar.php"); //incluyo archivo paginar

$paginar = new paginar("select * from perfil where tablon='$_COOKIE[nick]' $ordenar_usuarios order by $ordenar") ; //Realizo las busquedas de lo que quiero ordenar
# --> Número de resultados a mostrar
$paginar->mostrar("2") ;
$con = $paginar->procesar_codigo() ;


<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><? $paginar->crear_paginas()?></td>
</tr>
</table>


El error que me muestra es el siguiente:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\miweb\functions\paginar.php on line 13


Haber si alguien puede ayudarme, Muchas Gracias!
  #2 (permalink)  
Antiguo 06/10/2010, 15:55
 
Fecha de Ingreso: marzo-2006
Mensajes: 133
Antigüedad: 18 años, 1 mes
Puntos: 6
Respuesta: Funcion Paginar

Ya lo tengo solucionado! era un pequeño error de sintaxis en un while que no puse aqui! muchas gracias de todas formas

Etiquetas: funcion, paginar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:31.