Foros del Web » Programando para Internet » PHP »

Problema con el paginator

Estas en el tema de Problema con el paginator en el foro de PHP en Foros del Web. Ojala que el autor de paginator vea este mensaje.. sino pues alguien que lo conozca ojala me pueda ayudar. Tengo en un listado de items ...
  #1 (permalink)  
Antiguo 19/09/2005, 21:35
 
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
**RESUELTO** Problema con el paginator

Ojala que el autor de paginator vea este mensaje.. sino pues alguien que lo conozca ojala me pueda ayudar.

Tengo en un listado de items global use un query digamos diferente al que pone en su seccion de ejemplos.

Código PHP:
if (isset($_GET['letra'])) {
if (
$_GET['letra'] == 'number')
$sort "AND SUBSTRING(item, 1, 1) IN ('.','#','0','1','2','3','4','5','6','7','8','9')";
elseif (
strpos('abcdefghijklmnopqrstuvwxyz'strtolower($_GET['letra'])) !== false)
$sort "AND item LIKE '" $_GET['letra'] . "%'";
} else
$sort '';

$_pagi_sql "SELECT
config_field_1,

config_field_5,
config_field_6,
config_field_7,
cat_id ,
sub_cat_id ,
item,
item_id,
image_source
FROM mnl_items
WHERE active='yes' $sort
ORDER BY item ASC "

El paginator funciona (pueden verlo aqui http://www.animerate.net/listado_anime.php?letra=a) el problema es al parecer los links que genera, (son listado_anime.php?_pagi_pg=3) en lugar de algo como listado_anime.php?letra=a?_pagi_pg=3 supongo.

Alguna idea? se los agradecere..

Última edición por dev3; 20/09/2005 a las 21:38
  #2 (permalink)  
Antiguo 20/09/2005, 15:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hola:
Si ves en la web de Paginator hay una sección llamada "descripción" y otra "ejemplo avanzado" donde puedes observar la existencia de una variable (array) llamada $_pagi_propagar.

En tu caso, bastará con que definas el array así:
Código PHP:
$_pagi_propagar = array('letra'); 
Esa línea debe ir antes de hacer el include de Paginator.
Saludos
  #3 (permalink)  
Antiguo 20/09/2005, 15:29
 
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
Hola gracias por tu respuesta..
Al parecer no he podido solucionar el problema.. (puedes verlo aqui http://www.animerate.net/listado_anime.php)

Te pongo mi codigo para que puedas verlo aver si encuentras algun error.

Código PHP:
if (isset($_GET['letra'])) {
   if (
$_GET['letra'] == 'numerico')
       
$sort "AND SUBSTRING(item, 1, 1) IN ('.','#','0','1','2','3','4','5','6','7','8','9')";
   elseif (
strpos('abcdefghijklmnopqrstuvwxyz'strtolower($_GET['letra'])) !== false)
       
$sort "AND item LIKE '" $_GET['letra'] . "%'";
} else
  
$sort '';

$_pagi_sql "SELECT
config_field_1,
config_field_5,
config_field_6,
config_field_7,
cat_id ,
sub_cat_id ,
item,
item_id,
image_source
FROM mnl_items
WHERE active='yes' $sort
ORDER BY item ASC "


//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
 
$_pagi_propagar = array('letra'); //No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php"); 
Ves algo extraño?
Gracias por tu ayuda
  #4 (permalink)  
Antiguo 20/09/2005, 18:17
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hola... no veo ningún problema.... también veo que en los enlaces de tu web ya se está pasando el parámetro "letra" por la url.

El número de enlaces mostrados, es correcto.
Pero el número de registros mostrados (2) no es correcto... se muestran todos.
¿Estás haciendo algún mysql_query($_pagi_sql)?
¿Estás utilizando la variable $_pagi_result dentro de mysql_fetch_**()?

Saludos
  #5 (permalink)  
Antiguo 20/09/2005, 19:49
 
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
Disculpa.. no puse todo el codigo completo... va..

Código PHP:
if (isset($_GET['letra'])) {
   if (
$_GET['letra'] == 'numerico')
       
$sort "AND SUBSTRING(item, 1, 1) IN ('.','#','0','1','2','3','4','5','6','7','8','9')";
   elseif (
strpos('abcdefghijklmnopqrstuvwxyz'strtolower($_GET['letra'])) !== false)
       
$sort "AND item LIKE '" $_GET['letra'] . "%'";
} else
  
$sort '';

$_pagi_sql "SELECT
config_field_1,
config_field_5,
config_field_6,
config_field_7,
cat_id ,
sub_cat_id ,
item,
item_id,
image_source
FROM mnl_items
WHERE active='yes' $sort
ORDER BY item ASC "


//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
 
$_pagi_propagar = array('letra'); //No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc2.php");
    
$_pagi_result mysql_query($_pagi_sql);  
while(
$row_item mysql_fetch_array($_pagi_result)){ 
$tempo ++;
if (
$tempo == intval($tempo ))
   { 
$background "#FFFFFF";}
else { 
$background "#ECECEC";}

$item $row_item['item'];
$item_id $row_item['item_id'];
$cat_id $row_item['cat_id'];
$sub_cat_id $row_item['sub_cat_id'];
$config_field_1 $row_item['config_field_1'];
$config_field_5 $row_item['config_field_5'];
$config_field_6 $row_item['config_field_6'];
$number_reviews $row_item['number_reviews'];
$config_field_7 $row_item['config_field_7'];

// Result Row

//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>"
Algo extraño?
  #6 (permalink)  
Antiguo 20/09/2005, 20:58
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ok... sólo quita la línea:
Código PHP:
$_pagi_result mysql_query($_pagi_sql); 
El include() ya hace el mysql_query() automáticamente. Por eso te preguntaba lo anterior.

Elimina esa línea y todo funcionará correctamente.

Saludos
  #7 (permalink)  
Antiguo 20/09/2005, 21:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
Perfect jpinedo.. eres grande entre los grandes! una ves mas.. excelenteeee! script..

Muchisimas gracias por tu ayuda.
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:13.