Foros del Web » Programando para Internet » PHP »

Problema con paginator

Estas en el tema de Problema con paginator en el foro de PHP en Foros del Web. Hola Gente, me descargue el script paginator 1.6.3 para poder facilitar la paginacion de mi sitio, y tengo un problema al incluir el script. probe ...
  #1 (permalink)  
Antiguo 26/05/2008, 10:32
Avatar de electroera  
Fecha de Ingreso: marzo-2008
Ubicación: San Miguel, Bs As, Argentina
Mensajes: 52
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema con paginator

Hola Gente, me descargue el script paginator 1.6.3 para poder facilitar la paginacion de mi sitio, y tengo un problema al incluir el script.

probe de varias formas segun los consejos que lei en forosdelweb, pero nada.

Los errores son 3 principalmente:

1- no muestra absolutamente nada la consulta
2- Error Resource id #3
3- No pagina el sitio

Yo en mi codigo estableci $_pagi_sql de la forma $_pagi_sql= mysql_query();, y lei en un post que debia ser cadena de texto, asi que probe de esa forma pero no me muestra los resultados.

Les dejo mi codigo para ver si me pueden ayudar, gracias!

$_pagi_sql= mysql_query("
select a.Rubro, a.Descripcion, a.Precio, a.IdProducto, b.IdProducto, b.PathImagen
from listadaytona as a, imagenes as b
where a.Rubro=".$id." and b.IdProducto=a.IdProducto
order by a.Descripcion");

include("paginator.inc.php");

$num_resultados = mysql_num_rows($_pagi_sql);

echo "<p>N&uacute;mero de articulos encontrados: ".$num_resultados."</p>";

for ($i=0; $i <$num_resultados; $i++)
{
$row = mysql_fetch_array($_pagi_sql);
$dir_img=($row["PathImagen"]);
$desc=($row["Descripcion"]);
$price=($row["Precio"]);
$art=($row["IdProducto"]);

echo "<table width=\"510\" height=\"100\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"
."<tr align=\"center\" valign=\"middle\">"
."<td width=\"115\" height=\"30\"><img src=$dir_img></td>"
."<td width=\"315\" align=\"left\" class=\"desc_prods\">$desc<br>Articulo: $art</td>"
."<td width=\"80\" align=\"right\" class=\"precio\">$ $price</td>"
."</tr>"
."</table>"
."<br>";
}
  #2 (permalink)  
Antiguo 26/05/2008, 10:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con paginator

Hola electroera,

Si te fijas la documentación de Paginator tu debes de pasarle la consulta, no el resultado:
Código PHP:
$_pagi_sql "
select a.Rubro, a.Descripcion, a.Precio, a.IdProducto, b.IdProducto, b.PathImagen
from listadaytona as a, imagenes as b
where a.Rubro="
.$id." and b.IdProducto=a.IdProducto
order by a.Descripcion"
;

include(
"paginator.inc.php");

$num_resultados mysql_num_rows($_pagi_sql); 
Posteriormente para ciclar los datos te recomiendo que uses un bucle while en lugar de for.

Saludos.
  #3 (permalink)  
Antiguo 26/05/2008, 10:50
Avatar de electroera  
Fecha de Ingreso: marzo-2008
Ubicación: San Miguel, Bs As, Argentina
Mensajes: 52
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con paginator

Gracias por tu respuesta, si lei la documentaciony lo probe, ahora no se si he cometido algun error mas.

Vos decis que tendria que dejar el codigo asi?

$_pagi_sql= mysql_query("
select a.Rubro, a.Descripcion, a.Precio, a.IdProducto, b.IdProducto, b.PathImagen
from listadaytona as a, imagenes as b
where a.Rubro=".$id." and b.IdProducto=a.IdProducto
order by a.Descripcion");

include("paginator.inc.php");

echo "<table width=\"510\" height=\"100\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"
."<tr align=\"center\" valign=\"middle\">"
."<td width=\"115\" height=\"30\"><img src=$dir_img></td>"
."<td width=\"315\" align=\"left\" class=\"desc_prods\">$desc<br>Articulo: $art</td>"
."<td width=\"80\" align=\"right\" class=\"precio\">$ $price</td>"
."</tr>"
."</table>"
."<br>";
  #4 (permalink)  
Antiguo 26/05/2008, 11:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con paginator

Hola electroera,

Si te fijas en mi post anterior te estoy diciendo que $_pagi_sql debe de ser un string con la consulta, no el resultado de la consulta.

Saludos.
  #5 (permalink)  
Antiguo 26/05/2008, 16:22
Avatar de electroera  
Fecha de Ingreso: marzo-2008
Ubicación: San Miguel, Bs As, Argentina
Mensajes: 52
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con paginator

Ah, si si, disculpame, no habia entendido, demasiadas cosas en la cabeza....

Si, eso ya lo probe, y me tira el error :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\daytona\id.php on line 98

O sea, como si no me arrojara ningun resultado.... porque puede ser?

Gracias!
  #6 (permalink)  
Antiguo 26/05/2008, 16:26
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Problema con paginator

Puede que la consulta sea incorrecta, haz probado hacerla en el phpmyadmin o en algun otro lugar? Si no prueba poniendo:

mysql_query("select a.Rubro, a.Descripcion, a.Precio, a.IdProducto, b.IdProducto, b.PathImagen
from listadaytona as a, imagenes as b
where a.Rubro=".$id." and b.IdProducto=a.IdProducto
order by a.Descripcion") or die(mysql_error());

Esto solo para debug y saber si la consulta es correcta. Cuando tengas la consulta correcta, entonces dejas solo el string de la consulta. (muchas consultas @@)
__________________
Sin Ideas
  #7 (permalink)  
Antiguo 26/05/2008, 16:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con paginator

Hola electroera,

Si lees la documentación de paginator verás que debes de trabajar sobre $_pagi_result para mostrar tus consultas es decir después de incluir el paginator puedes averiguar el numero de filas usando:
Código PHP:
$num_resultados mysql_num_rows($_pagi_result); 
Saludos.
  #8 (permalink)  
Antiguo 26/05/2008, 16:49
Avatar de electroera  
Fecha de Ingreso: marzo-2008
Ubicación: San Miguel, Bs As, Argentina
Mensajes: 52
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con paginator

Ah, cierto, ok.

Ya corregi eso, y me muestra 20 consultas nada mas, cantidad de articulos encontrados 20, y me muestra esos 20, y en realidad me tendria que decir, cantidad de articulos 160, y que me vaya mostrando de a 20 con la paginacion.

Pero no me genera nada, me muestra solo los primeros 20 articulos y nada mas...
  #9 (permalink)  
Antiguo 26/05/2008, 17:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con paginator

Hola electroera,

Esa información la tienes en la variable $_pagi_info. Te recomiendo ampliamente que leas la documentación de paginator, ya que todas tus dudas las podrías resolver más rápido.

Saludos.
  #10 (permalink)  
Antiguo 26/05/2008, 17:37
Avatar de electroera  
Fecha de Ingreso: marzo-2008
Ubicación: San Miguel, Bs As, Argentina
Mensajes: 52
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con paginator

Ya lo hice funcionar, pero tengo una ultima duda... porque en numero de articulos encontrados me aparece la cantidad que establezco en _pagi_cuantos?

Me tendria que aparecer por ejemplo 200 resultados encontrados, o no?
  #11 (permalink)  
Antiguo 26/05/2008, 17:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con paginator

Si usas $_pagi_info te muestra todos los registros, si usas mysql_num_rows sobre $_pagi_result te va a dar la cantidad actual ya que estas averiguando el numero de resultados de la consulta actual.

Paginator lo que hace es con tu consulta SQL, primero la envía, obtiene el total de registros, y genera la paginación. Posteriormente vuelve a enviar otra consulta SQL ahora si para obtener solo los registros actuales del set actual.

Saludos.
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 07:26.