Foros del Web » Programando para Internet » PHP »

Paginador parecido a Google ¿Como?

Estas en el tema de Paginador parecido a Google ¿Como? en el foro de PHP en Foros del Web. Paginación parecido a Google ¿Como? Código PHP: <? // Datos de conexión a la base $base = "nombredelabase" ; $con = mysql_connect ( servidor , usuario , password ); mysql_select_db ( ...
  #1 (permalink)  
Antiguo 10/01/2006, 12:27
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Paginador parecido a Google ¿Como?

Paginación parecido a Google ¿Como?

Código PHP:
<?
// Datos de conexión a la base
$base="nombredelabase";
$con=mysql_connect(servidor,usuario,password);
mysql_select_db($base,$con);

if (!isset(
$pg))
$pg 0// $pg es la pagina actual
$cantidad=10// cantidad de resultados por página
$inicial $pg $cantidad;

$pegar "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad";
$cad mysql_db_query($base,$pegar) or die (mysql_error());

$contar "SELECT * FROM tabla ORDER BY titulo"
$contarokmysql_db_query($base,$contar);
$total_records mysql_num_rows($contarok);
$pages intval($total_records $cantidad);

// Imprimiendo los resultados
while($array mysql_fetch_array($cad)) {
echo 
$array['titulo']."<br>";


// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p>";
if (
$pg <> 0)
{
$url $pg 1;
echo 
"<a href='paginar.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo 
" ";
}

for (
$i 0$i<($pages 1); $i++) {
if (
$i == $pg) {
echo 
"<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo 
"<a href='paginar.php?pg=".$i."'>".$i."</a> ";
}
}

if (
$pg $pages) {
$url $pg 1;
echo 
"<a href='paginar.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo 
" ";
}
echo 
"</p>";
?>
supongamos que el resultado de esa paginación mostrando 50 registros por pagina nos de un total de 12 paginas para paginar... ahora bien...

según el script que expuse arriba, lo paginaria de la siguiente manera.. :

<< anterior 0 1 2 3 4 5 6 7 8 9 10 11 12 siguiente >>

Mi pregunta es la siguiente :
Supongamos que queremos pasar ese script a este tipo de formato en su paginación

<< anterior 1 2 3 4 5 siguiente >> (solo muestra 5 paginas comenzando desde "1" y no desde 0)

si le damos click por decir a la pagina 4 entonces que nos quede algo asi

<< anterior 4 5 6 7 8 siguiente >> osea aqui el paginador mostró el print o echo desde la pagina manteniendo su orden para mostrar de 5 paginas.

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #2 (permalink)  
Antiguo 10/01/2006, 12:57
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 4
A ver si esto te sirve
Código PHP:
$intervalo ceil ((numeropaginasamostrar/2)-1); // el ceil del numero de paginas a mostrar/2 - 1
        // Calculamos desde qué número de página se mostrará
    
$desde $pg $intervalo;
    
// Calculamos hasta qué número de página se mostrará
    
$hasta $pg $intervalo;
        if(
$desde 1){
        
// Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar. 
        
$hasta -= ($desde 1);
        
// Establecemos $_pagi_nav_desde como 1.
        
$desde 1;
    }
   if(
$hasta $paginas){
        
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar.
        
$desde -= ($hasta $paginas);
        
// Establecemos $_pagi_nav_hasta como el total de páginas.
        
$hasta $paginas;
        
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido.
        
if($desde 1){
            
$desde 1;
        } 
En numerodepaginasamostrar tienes que poner un numero.
Y en el for:
Código PHP:
for ($i=$desde$i<=$hasta$i++){ 
A ver si no se me ha pasado nada ;)
Hasta luego

Última edición por Cubatron; 10/01/2006 a las 13:02
  #3 (permalink)  
Antiguo 10/01/2006, 20:11
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Amigo lo hice asi pero ahora solo me sale esto :
<<anterior siguiente>> sin los numeros para paginar
Código PHP:
Código PHP:
<? 
// Datos de conexión a la base 
$base="nombredelabase"
$con=mysql_connect(servidor,usuario,password); 
mysql_select_db($base,$con); 

if (!isset(
$pg)) 
$pg 0// $pg es la pagina actual 
$cantidad=10// cantidad de resultados por página 
$inicial $pg $cantidad

$pegar "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad"
$cad mysql_db_query($base,$pegar) or die (mysql_error()); 

$contar "SELECT * FROM tabla ORDER BY titulo";  
$contarokmysql_db_query($base,$contar); 
$total_records mysql_num_rows($contarok); 
$pages intval($total_records $cantidad); 

// Imprimiendo los resultados 
while($array mysql_fetch_array($cad)) { 
echo 
$array['titulo']."<br>"
}  

// Cerramos la conexión a la base 
$con=mysql_close($con); 

// Creando los enlaces de paginación 

//--AQUICubatron
$intervalo ceil ((8/2)-1); // el ceil del numero de paginas a mostrar/2 - 1 
        // Calculamos desde qué número de página se mostrará 
    
$desde $pg $intervalo
    
// Calculamos hasta qué número de página se mostrará 
    
$hasta $pg $intervalo
        if(
$desde 1){ 
        
// Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.  
        
$hasta -= ($desde 1); 
        
// Establecemos $_pagi_nav_desde como 1. 
        
$desde 1
    } 
   if(
$hasta $paginas){ 
        
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar. 
        
$desde -= ($hasta $paginas); 
        
// Establecemos $_pagi_nav_hasta como el total de páginas. 
        
$hasta $paginas
        
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido. 
        
if($desde 1){ 
            
$desde 1
        }  

//FIN AQUICubatron

echo "<p>"
if (
$pg <> 0

$url $pg 1
echo 
"<a href='paginar.php?pg=".$url."'>« Anterior</a> "

else { 
echo 
" "


//for ($i = 0; $i<($pages + 1); $i++) { 
for ($i=$desde$i<=$hasta$i++){ 
if (
$i == $pg) { 
echo 
"<font face=Arial size=2 color=ff0000><b> $i </b></font>"

else { 
echo 
"<a href='paginar.php?pg=".$i."'>".$i."</a> "



if (
$pg $pages) { 
$url $pg 1
echo 
"<a href='paginar.php?pg=".$url."'>Siguiente »</a>"

else { 
echo 
" "

echo 
"</p>"
?>
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #4 (permalink)  
Antiguo 11/01/2006, 00:54
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 4
Perdon
puse $paginas cuando queria poner $pages
Sustituye los $paginas por $pages
  #5 (permalink)  
Antiguo 11/01/2006, 07:43
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Cita:
Iniciado por Cubatron
Perdon
puse $paginas cuando queria poner $pages
Sustituye los $paginas por $pages
Hey amigos QUedo estupendo .... pero lo siguiente edite estas lineas :

Código PHP:
// Establecemos $_pagi_nav_desde como 1.  
        
$desde 0;  // lo coloque en 0
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido.
$_pagi_nav_desde no haya quedado con un valor no v&#225;lido.  
        
if($desde 1){  
            
$desde 0// lo coloque en 0 
edite los valores para poder inicial entonces desde la primera pagina de los resultados en su paginación... cuando me refería comenzar desde 1, (me explique muy mal)...
la cosa era que la pagina 1 sea = 0 en el paginador...
ósea como podríamos eliminar ese valor 0 y que sea remplazado por el numero siguiente en su paginación

<<anterior 1 2 3 4 5 7 siguiente>>

es este caso tendríamos que la pagina 1 realmente es la que arroja los primeros resultados de la base de datos ósea 0, la numero 2 seria la 1 .... así hasta el fin...

pensé en un acumulador o contador.. pero no se realmente como debo usar o colocar ese acumulador para que me pueda funcional bien

Gracias.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #6 (permalink)  
Antiguo 11/01/2006, 12:15
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 4
Eso no lo acabo de entender. Ese paginador no lo he probado pero no se que quieres decir con pagina 0.
  #7 (permalink)  
Antiguo 11/01/2006, 12:31
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Cita:
Iniciado por Cubatron
Eso no lo acabo de entender. Ese paginador no lo he probado pero no se que quieres decir con pagina 0.
a ver si me explico,

sera posible que tenemos paginando
de la siguiente panera :

01234567 ....

pero en vez de comenzar por 0 comenzaremos por 1, pero esa pagina que dice ser una realmente al darle click es la pagina 0 de la paginacion...

1234567...

tu sabes cuando leemos la base de datos y hacemos el while para mostrar los resultados sucede que los primeros resultados seran mostrados segun la paginacion que tenemos en la pg=0
ahi se mostraran los primeros 10 resultados luego si le damos click a 1 entonces se mostraran los siguientes 10 osea : registros desde el 11-20...
lo ideal seria que el numero 1 sea la que contenga los resultados del 0 - 10 registros

espero a ver sido mas explixito
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #8 (permalink)  
Antiguo 11/01/2006, 13:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 4
Si no entiendo mal, me estas diciendo que la primera pagina se muestra como 0 en vez de como 1, no?

Prueba lo siguiente, pero devuelve los valores de $desde como estaban, o sea, vuelve al codigo antes de que modificaras lo de $desde entonces, donde pone:
Código PHP:
if (!isset($pg)) 
$pg 0// $pg es la pagina actual 
$cantidad=10// cantidad de resultados por página 
$inicial $pg $cantidad
Pon esto:
Código PHP:
$cantidad 10// cantidad de resultados por pagina
if (!isset($pg)) {
    
$inicial 0
    
$pg 1;  
} else { 
    
$inicial = ($pg 1) * $cantidad

En el codigo original, el numero de pagina corresponde con el registro inicial, por tanto, la pagina inicial es la 0, entonces si lo cambias por este, lo que hacemos es que el registro empieza por cero pero la pagina empieza por 1.

Espero no haberme explicado mal, Hasta luego

Última edición por Cubatron; 11/01/2006 a las 13:54
  #9 (permalink)  
Antiguo 11/01/2006, 15:20
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Gracias amigo, ahora mismo voy a intentar de nuevo,,... a ver si me queda como google
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #10 (permalink)  
Antiguo 16/02/2007, 17:21
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: Paginador parecido a Google ¿Como?

Pregunta, de que forma se pagina una busqueda sin perder los resultados cuando pasamos de pagina???
  #11 (permalink)  
Antiguo 16/02/2007, 17:44
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 4 meses
Puntos: 9
Re: Paginador parecido a Google ¿Como?

pasadno las variables x url o post
  #12 (permalink)  
Antiguo 16/02/2007, 21:17
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: Paginador parecido a Google ¿Como?

Asi mismo es...
aunque cuando de paginación se trata... en lo particlucar opto via url (GET)

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #13 (permalink)  
Antiguo 10/05/2007, 16:53
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: Paginador parecido a Google ¿Como?

Que tal, alguno me podria ayudar, no me funciona para mostrar solo 5 paginas (funciona normalmente como si nada hubiese sucedido despues de actualizarlo usando el codigo de CUBATRON), ya que si tenemos muchas seria todo un problema, aqui el codigo:

Muchas gracias.

Código:
<?
	$base="x";
	if (!isset($pg))
	$pg = 0; // $pg es la pagina actual
	$cantidad=10; // cantidad de resultados por página
	$inicial = $pg * $cantidad;
	
	$pegar = "SELECT id,nick,nombre from usuarios order by fecha DESC LIMIT $inicial,$cantidad";
	$cad = mysql_db_query($base,$pegar) or die (mysql_error());
	
	$contar = "SELECT id,nick,nombre from usuarios order by fecha DESC"; 
	$contarok= mysql_db_query($base,$contar);
	$total_records = mysql_num_rows($contarok);
	$pages = intval($total_records / $cantidad);
	
	while($row = mysql_fetch_array($cad)) {
            MOSTRAR
	}
	
	//--AQUICubatron
	$intervalo = ceil ((8/2)-1);
	$desde = $pg - $intervalo; 
	$hasta = $pg + $intervalo; 
	if($desde < 1){ 
			$hasta -= ($desde - 1); 
			$desde = 0; 
	} 
   	if($hasta > $pages){ 
		$desde -= ($hasta - $pages); 
		$hasta = $pages; 
		if($desde < 1){ 
			$desde = 0; 
		}  
	} 
	
	echo "<div style='padding-bottom:2px'>";
	// Creando los enlaces de paginación
	echo "<p>";
	if ($pg <> 0)
	{
		$url = $pg - 1;
		echo "<a href='p".$url.".html'><img src='images/izquierda.gif'/></a> ";
	}
	else {
		echo " ";
	}
	
	for ($i = 0; $i<($pages + 1); $i++) {
		if ($i == $pg) {
			echo "<a class='pagi1' href='p".$i.".html'>".$i."</a> ";
		}
		else {
			echo "<a class='pagi2' href='p".$i.".html'>".$i."</a> ";
		}
	}
	
	if ($pg < $pages) {
		$url = $pg + 1;
		echo "<a href='p".$url.".html'><img src='images/derecha.gif'/></a>";
	}
	else {
		echo " ";
	}
	echo "</p>"; 
	echo "</div>";
  #14 (permalink)  
Antiguo 14/05/2007, 12:45
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: Paginador parecido a Google ¿Como?

Alguien????¿¿¿¿¿¿¿¿
  #15 (permalink)  
Antiguo 06/09/2007, 10:45
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

Hola como estas, estaba siguiendo la explicacion que has dado sobre el paginador.
Tengo unas preguntas, ya que no me funciona bien:
En primer lugar, mi consulta depende de un id, el cual estoy enviando desde un hipervinculo anterior. La primera pagina me la muestra bien, pero cuando quiero ingresar a la 2,3,4...., me salen estos errores:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Archivos de programa\Apache Group\Apache2\htdocs\productos\paginas\modelos.php on line 44
0
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Archivos de programa\Apache Group\Apache2\htdocs\productos\paginas\modelos.php on line 48

te agradeceria la ayuda, q me puedas dar, ya que es un poco urgente.

Luis fernando
  #16 (permalink)  
Antiguo 06/09/2007, 11:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Paginador parecido a Google ¿Como?

Deberias de poner el codigo que estas utilizando, adicionalmente si la primera pagina te la muestra bien entonces yo creo tu problema es que no estas pasando el ID en las demas paginas.

Saludos.
  #17 (permalink)  
Antiguo 06/09/2007, 13:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

hola gracias por tu ayuda.
Mira ya le estoy pasando el id, en el hiperculo de pagina de esta forma
"<a href='modelos.php?id=".$id_producto."pg=".$i."'>". $i."</a> ";
donde $id_producto es el id q envio para q me genere la consulta.

el sistema trata de lo siguiente: Tengo unos tipos de productos (televisor,neveras...), luego al escoger alguno de ellos me muestra sus respectivas marcas, y cuando escojo las marcas me muestra los modelos. Haciendolo sin la paginacion va todo perfecto, pero al trabajar con paginacion, ya que son muchos modelos, y la primera pagina me la muestra bien, pero si deseo abir las otras, empieza a salir el siguiente error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in, al parecer cuando ingreso a las otras paginas se pierde el contador de registro y la verdad hay quedo..

el codigo que estoy trabajando es el siguiente
<?
include("conexion.php");
$link=Conectarse();
$id_producto=$_GET['id'];
$cantidad = 2;
if (!$pg) {
$inicial = 0;
$pg = 1;
}
else {
$inicial = ($pg - 1) * $cantidad;
}
?>
<p><table align="center">
<tr bgcolor="#FFFFFF">
<td><strong><font size="4">Tipo de Producto</font></strong></td>
<td><strong><font size="4">Nombre del Producto</font></strong></td>
<td><strong><font size="4">Modelo del Producto</font></strong></td>
<td><strong><font size="4">Caracteristicas</font></strong></td>
</tr>
<?
$contar=mysql_query("SELECT tipo_productos.id,tipo_productos.nombre tpnom,producto.id,producto.nombre pnom,producto.caracteristicas pcarac,producto.id_tipo_producto,modelo.id,modelo. nombre mnom,modelo.caracteristicas mcarac,modelo.id_producto FROM tipo_productos,producto,modelo WHERE producto.id_tipo_producto=tipo_productos.id and modelo.id_producto=producto.id and modelo.id_producto=$id_producto ORDER BY tpnom asc, pnom asc, mnom asc");
$total_records=mysql_num_rows($contar);
//echo $total_records;

$result=mysql_query("SELECT tipo_productos.id,tipo_productos.nombre tpnom,producto.id,producto.nombre pnom,producto.caracteristicas pcarac,producto.id_tipo_producto,modelo.id mid,modelo.nombre mnom,modelo.caracteristicas mcarac,modelo.id_producto FROM tipo_productos,producto,modelo WHERE producto.id_tipo_producto=tipo_productos.id and modelo.id_producto=producto.id and modelo.id_producto=$id_producto ORDER BY tpnom asc, pnom asc, mnom asc LIMIT $inicial,$cantidad");
$pages=intval($total_records / $cantidad);
//echo $pages;

if($total_records) {
while($row=mysql_fetch_array($result))
{
?>
<tr bgcolor="#FFFFFF">
<td><a href="productos.php?id=<? echo $row['id'] ?>"><? echo $row['tpnom'] ?></a></td>
<td><? echo $row['pnom'] ?></td>
<td><? echo $row['mnom'] ?></td>
<td><? echo $row['mcarac'] ?></td>
<td><a href="producto_borrar.php?id=<? echo $row['pid'] ?>"><img src="../imagenes/borrar.png" width="16" height="16" border="0" /></a></td>
</tr>
<?
}
}
?>
</table>
<p align="center"><a href="administrar_all.php"><img src="../imagenes/volver_admin.jpg" width="150" height="30" border="0" /></a></p>
</p>
<div align="center">
<?
// Creando los enlaces de paginación
echo "<p>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href='modelos.php?pg=".$url."'>« Anterior</a> ";
}
else {
echo " ";
}

for ($i = 1; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font face=Arial size=2 color=ff0000><b> $i </b></font>";
}
else {
echo "<a href='modelos.php?id=".$id_producto."pg=".$i."'>". $i."</a> ";
}
}

if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='modelos.php?pg=".$url."'>Siguiente »</a>";
}
else {
echo " ";
}
echo "</p>";
?>

de verdad te agradezco en lo que puedas ayudar.

luis fernando
  #18 (permalink)  
Antiguo 06/09/2007, 15:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Paginador parecido a Google ¿Como?

Prueba agregar en tus mysql_query al final pon un: mysql_query( "SELECT..." ) or die( mysql_error() );

Para que veas que error es el que te dan tus Querys.

Saludos.
  #19 (permalink)  
Antiguo 06/09/2007, 15:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

hola GatorV, este es el error que me sale Unknown column '3pg' in 'where clause'.

que puedo hacer ahi
  #20 (permalink)  
Antiguo 06/09/2007, 15:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

hola GatorV, creo que el error esta en esta sentencia: echo "<a href='modelos.php?id=".$id_producto."pg=".$i."'>". $i."</a> ";.

ya que esta recibiendo en la segunda pagina el id_producto mas pg, como hago para separ,id=".$id_producto." de pg=".$i.", pero q en el hipervinculo me tome los dos. gracias
  #21 (permalink)  
Antiguo 06/09/2007, 15:47
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

hola de nuevo, que pena tantas preguntas, pero es q hasta ahora estoy aprendiendo php y ademas necesita este modulo urgente.
hice unas pruebas y en el hipervinculo de la paginacion, puse lo sgte:
echo "<a href='modelos.php?id=$id_producto&pg=$i'>$i</a> ";, ya no me salen errores, pero al dar click sobre alguna de las paginas 2,3,4, se queda en la misma. Lo peor fue que ahora estoy mas perdido.

de antemano gracias
luis fernando
  #22 (permalink)  
Antiguo 06/09/2007, 15:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Paginador parecido a Google ¿Como?

Te falta rescatar la variable $pg arriba donde rescatas $id producto, por eso se queda en el mismo lugar.

Saludos.
  #23 (permalink)  
Antiguo 06/09/2007, 16:01
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

hola gatorV, la verdad, disculpa mi ignorancia, pero no te endiendo bien,
aunque lo q hice es esto $pg=$_GET['pg'];, lo puse arriba con el $id_producto.
el resultado de eso es q si cambia, el numero de pagina, osea se pone de color rojo, al que se le ha da click, pero la consulta no cambia para nada.

dime que hago, q de tanto hacer, estoy un poco bloqueado.

gracias.
  #24 (permalink)  
Antiguo 06/09/2007, 16:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

muchas gracias por todo, ya pude.
te debo una.

chao

luis fernando
  #25 (permalink)  
Antiguo 06/09/2007, 16:24
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Paginador parecido a Google ¿Como?

de nuevo yo GatorV, pero es una simple consulta.

voy a colocar en cantidad de paginas para ver 10, pero en los registros tengo 51, entonces solamente me muestra 5 paginas con los 50 registros, pero queda 1 perdido. en ese caso que debo hacer. gracias de nuevo

luis fernando
  #26 (permalink)  
Antiguo 12/12/2007, 14:11
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Re: Paginador parecido a Google ¿Como?

Saludos.

Hice una pequeña variación a la forma en que se muestra abajo al pie de los resultados, el "navegador".

Código PHP:
<!-- INICIO Cantidad de Paginas-->
<table width="578" height="22"  border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
  <td width="578" align="center" valign="middle" class="cabecera">&nbsp;</td>
 </tr>
 <tr>
  <td align="center" valign="middle" class="cabecera">
  <? 
//--Estilo de Paginacion Sepsy
$intervalo ceil ((10/2)-1); // el ceil del numero de paginas a mostrar/2 - 1 
        // Calculamos desde qué número de página se mostrará 
    
$desde $page $intervalo
    
// Calculamos hasta qué número de página se mostrará 
    
$hasta $page $intervalo
        if(
$desde 1){ 
        
// Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.  
        
$hasta -= ($desde 1); 
        
// Establecemos $_pagi_nav_desde como 1. 
        
$desde 1
    } 
   if(
$hasta $total_pages){ 
        
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar. 
        
$desde -= ($hasta $total_pages); 
        
// Establecemos $_pagi_nav_hasta como el total de páginas. 
        
$hasta $total_pages
        
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido. 
        
if($desde 1){ 
            
$desde 1
        }  

//FIN Estilo Paginado Sepsy 

//Primera Página (INICIO)
        
echo "&nbsp;<a class='label' href=".$_SERVER['PHP_SELF']."?page=1&max=0>Primera Página</a>&nbsp;";

// Build Previous Links
if($page 1)

    
$prev = ($page 1); 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?page=$prev&max=$max><img src='icons/prev_icon.gif' border='0'></a>&nbsp;"
}
//for($i=1;$i<$total_pages+1;$i++)
for ($i=$desde$i<=$hasta$i++) { 
$max    =    $max_results * ($i-1);
    if (
$i%25 == 0) echo "<br>";
    if((
$page) == $i){
        echo 
"<span class='pages_sel'>&nbsp;<b> $i </b>&nbsp;</span>"
        }else{
            echo 
"&nbsp;<a class='label' href=".$_SERVER['PHP_SELF']."?page=$i&max=$max>$i</a>&nbsp;"
            }

// Build Next Link 
//Flechita para avanzar
if($page $total_pages){ 
    
$next = ($page 1); 
    echo 
"&nbsp;<a  href=".$_SERVER['PHP_SELF']."?page=$next&max=$max><img src='icons/next_icon.gif' border='0'></a>"
}  
//Ultima Página
$max_fin    =    $max_results * ($total_pages -1);
echo 
"&nbsp;<a class='label' href=".$_SERVER['PHP_SELF']."?page=$total_pages&max=$max_fin>Ultima Página</a>&nbsp;";
echo 
"<br> Cantidad Total de Páginas : $total_pages";


?></td>
                      </tr>
          </table>
<!-- FIN de Cantidad de Páginas-->
Básicamente, muestra un enlace Primera Pagina - 1 2 3 4 5 - Ultima Página

Esta incluido que te muestre la cantidad total de páginas que tienes y además, incluye por GET una variable llamada $max la cual se encarga de que el contador de Nº de filas, que aparece en el echo vaya aumentando a pesar de que te cambies de pagina hacia adelante o atrás... asi el enumerado siempre será de corrido.

se maneja de la siguiente manera:

INICIO DE PAGINA
Código PHP:
$cont 0
Dentro del while que genera los resultados ponemos esto al inicio:
Código PHP:
if ($page == '1'){ 
            
$cont 1;}
                else {
                    
$cont $cont $_GET['max'];
                    } 
En una celda hacemos el echo al contador.

Código PHP:
echo "<tr><td width='31' align='center'>".$cont."</td></tr>"
y al final, antes del MoveNext, colocamos lo siguiente.

Código PHP:
$cont $cont 1
Esop.

Les deje hasta los archivos de las flechitas XD

Cualquier duda pregunten aca o en mi blog
www.scyfox-site.com

Silla!

Última edición por SCY-FOX; 12/12/2007 a las 14:18 Razón: falto un tag de cerrado..
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:21.