Foros del Web » Programando para Internet » PHP »

Paginator (jpinedo) Error al moverse en paginacion

Estas en el tema de Paginator (jpinedo) Error al moverse en paginacion en el foro de PHP en Foros del Web. Hola de nuevo chicos. Yo de enfadosa de nuevo Veran, despues de romperme la cabeza mucho tiempo de nuevo recurro a ustedes, veran, el paginador ...
  #1 (permalink)  
Antiguo 15/09/2009, 14:13
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Paginator (jpinedo) Error al moverse en paginacion

Hola de nuevo chicos.

Yo de enfadosa de nuevo

Veran, despues de romperme la cabeza mucho tiempo de nuevo recurro a ustedes, veran, el paginador al parecer esta haciendo unas cositas medio raras.

Tengo un motor de busqueda que realiza una consulta a la base de datos, e imprime los datos paginandolos con el paginador de jpinedo.

El problema es que cuando doy en LAST o NEXT, me hace un query completo a la base de datos, no se porke lo esta haciendo, el query para la BDD es este:

Código PHP:
$_pagi_sql "SELECT FROM tabla1 WHERE part LIKE '%{$_POST['Search']}%'"
Por ejemplo, tengo 8 item que comienzan con 10, tengo que me despliegue 4 resultados por pagina, y el paginador me muestra esto:

« < 1 | 2 > »

Hasta ahi todo bien, pero cuando doy en » me despliega todos los resultados de la base de datos, que son 15 ahorita, eso queda asi:

« < 1 | 2 | 3 | 4 > »

Mi pregunta es, alguna idea de porke me esta haciendo eso?

De verdad que les agradecere mil su ayuda

Si es de ayuda, aqui dejo el script completo de paginacion que estoy usando:

Código PHP:
<?php require_once("includes/functions.php"); ?>
<?php

//Conexión a la base de datos
require_once("enlace.php");

//Sentencia sql (sin limit)
timequery();
$_pagi_sql "SELECT FROM db1 WHERE part LIKE '%{$_POST['Search']}%' OR vendor LIKE '%{$_POST['Search']}%' ORDER BY id";

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 4;//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 5;//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.

//Variables a propagar
$_pagi_propagar = array("part""vendor");//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 "N/D";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "<img src='images/sort_prev_arrow.gif' />";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "<img src='images/sort_next_arrow.gif' />";// 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");

//Imprimimos el texto de query que ejecuto el cliente e iniciamos DIV para efecto de imagenes detalladas
    
if (mysql_num_rows($_pagi_result) > 0){  // el secreto .. xDD ... 
    
echo "<h1>Search results for item(s) with requested query</h1>";
    echo 
"<div id='gallery'>";

//Leemos y escribimos los registros de la página actual
$total 2;
$contador 0;
echo 
"<table><tr>";
while(
$row mysql_fetch_array($_pagi_result)){
    echo 
"<td>
    <form method='post' action='email.php' onSubmit='return Validar(this);'>
    <table width='400' border='0' class='prodinfo'><tr><td width='50%'>
    Campo1<br />
    Campo2<br />
    Campo3<br />
    Campo4<br />
    Campo5
    </td><td width='50%'>
    Campo6<br />
    Campo7<br />
    Campo8<br />
    <input type='submit' name='submit' value='Request Item' /><br />
    </td></tr></table>
    </form>

    <form method='post' action='item.php'>
    <table width='400' border='0' class='prodinfo'><tr><td>
    Field1
    Field2
    Field3
    Field4
    <input type='submit' name='submit' value='Detailed View for item' /><br />
    </td></tr></table>
    </form><br></td>"
;
$contador++;
       if (
$contador == $total)
       {
              echo 
'</tr><tr>';
              
$contador 0;
}
}
echo 
"</tr></table>";

//Incluimos la barra de navegación y terminamos DIV para efecto de imagenes detalladas
echo "</div>";
echo 
"<hr />";
echo 
"<div align='center'>".$_pagi_navegacion."</div><br>";

//Incluimos la información de la página actual
echo "<div align='center'>Showing results ".$_pagi_info."</div>";
timequery();
} else {
   echo 
"<br><h1>No results where found for your Search, please try another term.</h1>If you still can't find what you're looking for, feel free to Contact Us.";
}  
?>
  #2 (permalink)  
Antiguo 15/09/2009, 14:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Eso es porque estas discriminando el dato de tu query por POST, y al paginar se pierde, tienes que cambiar tu sistema para que pases los datos por GET y los propagues por los links del paginador.

Saludos.
  #3 (permalink)  
Antiguo 15/09/2009, 14:17
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Hola de nuevo GatorV, tu siempre salvandome la vida

Disculpa, como hago lo que me comentas?

Gracias mil de nuevo tu ayuda !!!!!
  #4 (permalink)  
Antiguo 15/09/2009, 14:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Como te comente cambia de GET a POST, el problema es al paginar usando POST no se propaga la variable, tienes que pasar el dato por la URL para poderlo posteriormente rescatar en todas las paginas, creo la variable es $_pagi_propagar.

Saludos.
  #5 (permalink)  
Antiguo 15/09/2009, 14:24
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Lo hago en el query SQL? Es decir asi:?

Código PHP:
$_pagi_sql "SELECT FROM tabla1 WHERE part LIKE '%{$_GET['Search']}%'"
Asi lo hago disculpa?
  #6 (permalink)  
Antiguo 15/09/2009, 14:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Sí pero también necesitas propagar así la variable usando GET desde tu formulario donde estas buscando.

Saludos.
  #7 (permalink)  
Antiguo 15/09/2009, 14:36
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Hola de nuevo GatorV

Ya hice los cambios y me sigue haciendo lo mismo, dejo aqui el formulario de busqueda:

Código HTML:
 <form accept-charset="UTF-8" method="GET" action="search.php" >
	<div>
		<img src="images/search.gif" /><input name="Search" type="text" id="inputString" value="Please Input Part#" onkeyup="lookup(this.value);" onblur="fill();" size="20" onClick="this.value = '';" ><input type="image" src="images/go.gif" align="bottom" name="image" width="25" height="19" value="Search">
	</div>
<div class="suggestionsBox" id="suggestions" style="display: none;">
	<img src="images/upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
<div class="suggestionList" id="autoSuggestionsList">&nbsp;
	</div>
</div>
</form> 
Y el SQL quedo asi:
Código PHP:
$_pagi_sql "SELECT * FROM tabla1 WHERE part LIKE '%{$_GET['Search']}%'"
  #8 (permalink)  
Antiguo 15/09/2009, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Ahora solo te falta propagar la variable de búsqueda (ve la variable $_pagi_propagar).

Saludos.
  #9 (permalink)  
Antiguo 15/09/2009, 14:43
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Y si no es mucha molestia GatorV, como propago la variable?

Sorry por tanta molestia de verdad
  #10 (permalink)  
Antiguo 15/09/2009, 14:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Ahí ya lo tienes en tu código, simplemente es agregar la variable Search.

Saludos.
  #11 (permalink)  
Antiguo 15/09/2009, 15:00
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Paginator (jpinedo) Error al moverse en paginacion

Haaaaaaaaaaay mil gracias de nuevo GatorV !!!

Una vez mas eres mi heroe !!! Gracias !!!
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 20:24.