elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:21  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Paginacion PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Paginacion PHP  (Leído 2,673 veces)
Sinedra

Desconectado Desconectado

Mensajes: 44


<?php include("Sinedra.php"); ?>


Ver Perfil
Paginacion PHP
« en: 22 Enero 2011, 17:40 »

Estoy en pleno desarrollo de un sistema de usuarios en PHP/MySQL y he llegado a un punto en que necesito una paginacion de resultados (para mostrar los usuarios registrados), el punto es que no se cual es la mejor forma de hacerlo, he buscado en google pero ninguna se acomoda mucho a la que quiero. para que entiendan mejor:

<< Anterior 1 2 3 4 5 6 7 8 ... 101 Siguiente>>
<< Anterior 1 2 3 4 5 6 7 8 ... 101 Siguiente>>
<< Anterior 1 2 3 4 5 6 7 8  ... 101 Siguiente>>
<< Anterior 1 2 3 4 5 6 7 8  ... 101 Siguiente>>
<< Anterior 1 2 3 4 5 6 7 8  ... 101 Siguiente>>
.
.
.
<< Anterior 1 ... 3 4 5 6 7 8 9  ... 101 Siguiente>>
<< Anterior 1 ... 4 5 6 7 8 9 10 ... 101 Siguiente>>
.
.
.
<< Anterior  1 ... 92 93 94 95 96 97 98 ... 101 Siguiente>>
<< Anterior  1 ... 93 94 95 96 97 98 99 ... 101 Siguiente>>
.
.
.
<< Anterior  1 ...  94 95 96 97 98 99 100 101 Siguiente>>
<< Anterior  1 ...  94 95 96 97 98 99 100 101 Siguiente>>
<< Anterior  1 ...  94 95 96 97 98 99 100 101 Siguiente>>
<< Anterior  1 ...  94 95 96 97 98 99 100 101 Siguiente>>
<< Anterior  1 ...  94 95 96 97 98 99 100 101 Siguiente>>

Porfavor alguien orienteme como puedo hacer algo de este estilo.

Si alguien me quiere ayudar porfavor envienme un PM con su msn para hablar mas rapido. Gracias


« Última modificación: 22 Enero 2011, 17:56 por Sinedra » En línea
RedZer


Desconectado Desconectado

Mensajes: 654



Ver Perfil
Re: Paginacion PHP
« Respuesta #1 en: 22 Enero 2011, 18:38 »

quiza este te sriva

http://phppaging.phperu.net/


En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
Sinedra

Desconectado Desconectado

Mensajes: 44


<?php include("Sinedra.php"); ?>


Ver Perfil
Re: Paginacion PHP
« Respuesta #2 en: 22 Enero 2011, 19:20 »

Gracias, me sirvio de algo.
En línea
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Re: Paginacion PHP
« Respuesta #3 en: 22 Enero 2011, 19:46 »

Gracias, me sirvio de algo.

Men, si has echo un sistema de usuarios, la paginacion es pan comido, vaya.... asumiendo que programaste ya un sistema.

La cosa es usar consultar con LIMIT y utilizar una variable que te sirva como punto de referencia para saber que rango mostrar ( $_GET["pagina"] )...

saludos !
En línea

tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Paginacion PHP
« Respuesta #4 en: 22 Enero 2011, 20:54 »

[asumiendo una conexión pre-establecida]

Código
$query = mysql_query("SELECT COUNT(*) FROM `my_tabla`");
$query_result = mysql_fetch_array($query);
 
 
 
$count = $query_result[0];
$max_results = 20;
$pages = ceil($count/$max_results);
 
if(isset($_GET["pagina"])){
$pagina = intval($_GET["pagina"]);
else{
$pagina = 0;
}
 
$query = mysql_query("SELECT * from `my_tabla` limit {$pagina},{$max_results}";
$query_result = mysql_fetch_assoc($query);
foreach($query_result as $key => $val)
{
echo "{$key} : {$val}".PHP_EOL;
}
echo "</br></br>";
echo "<b>&gt;</b>";
for($i=0;$i<$pages;$i++)
{
echo "<a href='./index.php?pagina={$i}'> {$i} </a>&nbsp;";
}
echo "<b>&lt;</b>";
 






es solo el esqueleto de lo que tu quieres, pero plasma la idea
En línea

Colaboraciones:
1 2
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Paginacion PHP
« Respuesta #5 en: 22 Enero 2011, 21:15 »

:http://www.desarrolloweb.com/articulos/1035.php
En línea

---
Sinedra

Desconectado Desconectado

Mensajes: 44


<?php include("Sinedra.php"); ?>


Ver Perfil
Re: Paginacion PHP
« Respuesta #6 en: 23 Enero 2011, 00:08 »

Muchas gracias a todos por la ayuda!, muy amables, les cuento que tras un largo dia de programacion la paginacion me quedo de lujo =) gracias por ayudarme.

Saludos

« Última modificación: 23 Enero 2011, 00:11 por Sinedra » En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Paginacion PHP
« Respuesta #7 en: 23 Enero 2011, 00:15 »

Podrías poner el código para verlo...
En línea

---
Sinedra

Desconectado Desconectado

Mensajes: 44


<?php include("Sinedra.php"); ?>


Ver Perfil
Re: Paginacion PHP
« Respuesta #8 en: 23 Enero 2011, 00:25 »

jeje esque tiene unas 305 lineas, sin contar las funciones extras. pronto cuando estrene el proyecto en que ando les dejo un link aqui para que lo vean. Saludos.
En línea
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Re: Paginacion PHP
« Respuesta #9 en: 23 Enero 2011, 17:11 »

jeje esque tiene unas 305 lineas, sin contar las funciones extras. pronto cuando estrene el proyecto en que ando les dejo un link aqui para que lo vean. Saludos.

Wow 305 lineas es mucho, entonces me imagino que tienes un mezcladero horrendo no ?... porque una buena paginacion no hiria mas haya de las 100 lineas :S...

Te recomiendo uses 2 funciones:

paginacion()

paginacion_rollout()

La funcion paginacion() toma argumentos que le sirven para hacer la paginacion segun el limite de inicio y fin, toma la bdd y genera una consulta que despues puedes usar con mysql_fetch_array().

Y paginacion_rollout() crea el roll out de las paginas, tomandos los mismos argumentos que le paseste a paginacion(), esta deduce las paginas, Y podra retornarte el HTML a pegar (ya tu le concatenas una capa) o que lo imprima directo dentro de la funcion (aunque seria poco recomendable).

Saludos !
En línea

Sinedra

Desconectado Desconectado

Mensajes: 44


<?php include("Sinedra.php"); ?>


Ver Perfil
Re: Paginacion PHP
« Respuesta #10 en: 23 Enero 2011, 17:46 »

Gracias creo que seguire tu consejo, la paginacion solamente tiene unas 120 lineas solo puse 2 veces el mismo codigo pq tb le implemente un buscador, pero en si tiene como 120 lineas
En línea
el_quick

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Paginacion PHP
« Respuesta #11 en: 26 Noviembre 2011, 00:34 »

kpaginate es una excelente clase para paginación en php, te la recomiendo! http://www.aprender-a-programar.com/paginacion-php
En línea
WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Paginacion PHP
« Respuesta #12 en: 26 Noviembre 2011, 23:05 »

Talves puedas complementarla con la clase que hize hace algun tiempo para hacer paginadores a partir de una query mysql:

Código
<?php if($_SERVER['SCRIPT_FILENAME'] == __file__) exit;
/*
FrameworkDrawCoders : 3.*
Last modification : 29-4-2011
Class version : 1.2
*/

 
class paginator{
 
/* Results */
var $total_items;
var $total_pages;
var $actual_page;
var $actual_url;
var $matrix_content;
var $matrix_paginator;
 
/* Configurations */
var $items_by_page = 15;
var $pages_by_screen = 10;
var $page_var = '_p';
var $custom_css = false;
var $base_url; /* Blank. Change in function. */
 
/* Libs */
var $sql;
 
/* System Vars */
var $last_error;
var $libs_need;
 
/* Default libs */
var $conf;
var $str;
var $path;
var $headers;
 
function __construct(){
$this->libs_need = array('sql'); /* Need */
}
 
function matrix_sql($query_sql){
/* Reset value */
$this->total_items = null;
$this->total_pages = null;
$this->actual_page = null;
$this->actual_url = null;
$this->matrix_content = null;
$this->matrix_paginator = null;
$this->last_error = null;
$this->base_url = null;
 
/* Count results */
$this->total_items = $this->sql->fast_select('select count(*) from '.substr($query_sql, strripos($query_sql, ' from ') + 6, strlen($query_sql) - (strripos($query_sql, ' from ') + 6)), true);
$this->total_pages = ceil($this->total_items / (int)$this->items_by_page);
 
/* Clean get var */
if((int)$_GET[$this->page_var] == 0)
$this->actual_page = 1; /* Default page */
elseif($_GET[$this->page_var] > (int)$this->total_pages)
$this->actual_page = (int)$this->total_pages;
else
$this->actual_page = (int)$_GET[$this->page_var];
 
/* Make content */
$this->matrix_content = $this->sql->fast_select($query_sql.' limit '.(((int)$this->actual_page - 1) * (int)$this->items_by_page).', '.(int)$this->items_by_page);
 
/* Configuration of paginator */
if((int)$this->actual_page > ($this->pages_by_screen / 2)){
$nstart_paginator = floor(((int)$this->actual_page + 1 - $this->pages_by_screen / 2));
if($nstart_paginator < 1)
$nstart_paginator = 1;
$nlast_paginator = ($this->pages_by_screen + $nstart_paginator - 1);
}else{
$nstart_paginator = 1;
$nlast_paginator = (int)$this->pages_by_screen;
}
 
/* Make URL base */
$this->base_url = $this->conf->script_url .'?';
if($_GET){
foreach($_GET as $var => $val){
if($var != $this->page_var){
if(is_array($val)){
foreach($val as $a => $b){
$this->base_url .= $var.'['.urlencode($a).']'.'='.urlencode($b).'&';
unset($b);
}
unset($a);
}else{
$this->base_url .= urlencode($var).'='.urlencode($val).'&';
}
}
unset($var, $val);
}
$this->base_url = substr($this->base_url, 0, strlen($this->base_url) - 1);
}
 
/* Make paginator */
for($c = $nstart_paginator; $c <= $nlast_paginator; $c++){
if($c > (int)$this->total_pages)
break;
$this->matrix_paginator[] = array(
'id' => $c,
'url' => $this->path->make_permalink($this->base_url.'&'.$this->page_var .'='.(int)$c),
);
}
 
$this->actual_url = $this->base_url.'&'.$this->page_var .'='.(int)$this->actual_page;
return array(
'matrix_paginator' => $this->matrix_paginator,
'matrix_content' => $this->matrix_content
);
}
 
function make_content_html($headers, $custom_css = false){
if(!$this->matrix_content){
$this->last_error = array('id' => 1, 'text' => 'No have content');
return false;
}
 
$return = '';
 
/* Include default css */
if((!$custom_css) and (!$this->conf->css_paginator_content_inserted)){
$return .= '<link href="'.$this->path->libs().'res_paginator/default_content.css" type="text/css" media="screen" rel="stylesheet" />';
$this->conf->css_paginator_content_inserted = true;
}
 
$return .= '
<table class="__cpag_a" id="__pag_a" name="__pag_a">
<thead class="__cpag_b">
<tr class="__cpag_c">
'
;
/* Calculate columns */
$th = 0;
foreach($this->matrix_content[0] as $var => $val){
$th++;
$return .= '
<th class="__cpag_d __cpag_th_'
.(int)$th.'">'.$this->str->toHtml($headers[$var]).'</th>
'
;
unset($var, $val);
}
unset($th);
$return .= '
</tr>
</thead>
<tbody class="__cpag_e">
'
;
foreach($this->matrix_content as $trid => $content){
$return .= '
<tr class="__cpag_f __cpag_tr_'
.$trid.'" id="__cpag_id_'.$trid.'" name="__cpag_id_'.$trid.'">
'
;
$tdid = 0;
foreach($content as $col => $val){
$tdid++;
$return .= '
<td class="__cpag_g __cpag_td_'
.(int)$tdid.'" id="__cpag_id_'.$trid.'_'.$tdid.'" name="__cpag_id_'.$trid.'_'.$tdid.'">
'
.$this->str->toHtml($val).'
</td>
'
;
unset($col, $val);
}
unset($tdid);
$return .= '
</tr>
'
;
unset($trid, $content);
}
$return .= '
</tbody>
</table>
'
;
 
return $return;
 
}
 
function make_paginator_html($custom_css = false){
if(!$this->matrix_content){
$this->last_error = array('id' => 1, 'text' => 'No have content');
return false;
}
 
$return = '';
 
/* Include default css */
if((!$custom_css) and (!$this->conf->css_paginator_inserted)){
$return .= '<link href="'.$this->path->libs().'res_paginator/default_paginator.css" type="text/css" media="screen" rel="stylesheet" />';
$this->conf->css_paginator_inserted = true;
}
 
$return .= '
<table class="__pag_a" id="__pag_a" name="__pag_a">
<tbody class="__pag_b">
<tr class="_pag_c">
<td class="__pag_d __pag_td_start">
<a class="__pag_e __pag_href_start" href="'
.$this->path->make_permalink($this->base_url .'&'.$this->page_var .'=1').'"><div class="__pag_f __pag_div_start">&lt;&lt;</div></a>
</td>
'
;
foreach($this->matrix_paginator as $id => $pag){
$id = ($id + 1);
if($this->actual_page == $pag['id']){
$return .= '
<td class="__pag_d __pag_td_'
.$id.' __pag_td_actual">
<a class="__pag_e __pag_href_'
.$id.' __pag_href_actual" href="'.$pag['url'].'"><div class="__pag_f __pag_div_'.$id.' __pag_div_actual">'.$pag['id'].'</div></a>
</td>
'
;
}else{
$return .= '
<td class="__pag_d __pag_td_'
.$id.'">
<a class="__pag_e __pag_href_'
.$id.'" href="'.$pag['url'].'"><div class="__pag_f __pag_div_'.$id.'">'.$pag['id'].'</div></a>
</td>
'
;
}
unset($id, $pag);
}
$return .= '
<td class="__pag_d __pag_td_end">
<a class="__pag_e __pag_href_end" href="'
.$this->path->make_permalink($this->base_url .'&'.$this->page_var .'='.$this->total_pages).'"><div class="__pag_f __pag_div_end">&gt;&gt;</div></a>
</td>
</tr>
</tbody>
</table>
'
;
return $return;
}
 
function make_all_html($headers, $custom_css = false){
return ($paginator = $this->make_paginator_html($custom_css)).$this->make_content_html($headers, $custom_css).$paginator;
}
}
 
 
 
 
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema en paginacion con php
Desarrollo Web
Lmc 0 207 Último mensaje 22 Agosto 2004, 16:00
por Lmc
Paginación.
Desarrollo Web
Rk_PetIT 3 318 Último mensaje 4 Marzo 2006, 23:30
por Rk_PetIT
paginación
PHP
bels_mike 3 611 Último mensaje 1 Enero 2008, 14:20
por USUARIO_DE_SOFTWARE_LIBRE
paginacion
PHP
Sr.Morocco 0 696 Último mensaje 14 Mayo 2010, 11:06
por Sr.Morocco
Paginación PHP
Desarrollo Web
carlosuc99 5 778 Último mensaje 17 Enero 2012, 18:55
por el_quick
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines