Foros del Web » Programando para Internet » PHP »

Consulta con paginator...

Estas en el tema de Consulta con paginator... en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo una consulta con el script paginator... Lo he usado muchos años y nunca he tenido problemas, hasta hoy que estoy ...
  #1 (permalink)  
Antiguo 09/01/2008, 02:45
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Consulta con paginator...

Hola a todos, estoy haciendo una consulta con el script paginator... Lo he usado muchos años y nunca he tenido problemas, hasta hoy que estoy haciendo una consulta dentro de otra y me aparece un error.
La consulta en cuestion es:

SELECT codigo, nombre, .... FROM noticias WHERE categoria = (SELECT codigo FROM categorias WHERE codigo = $_POST[cat]) ORDER BY fecha;

$_pagi_cuantos = 10;

Cuando se ejecuta me aparece un error en la consulta, en cambio, si la ejecuto sin el paginator, me funciona bien, ¿que pasa?

Gracias,
  #2 (permalink)  
Antiguo 09/01/2008, 02:57
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Consulta con paginator...

¿Y cual es el mensaje de error? Suelen dar muchas pistas.

Aventurando una respuesta: en la consulta usas $_POST, y en los paginadores normales el link a las paginas es un GET, con lo que cuando pinchas al link para ir a una de las paginas de la paginacion ya no existe el array $_POST, y por eso te queda una consulta incorrecta.
  #3 (permalink)  
Antiguo 09/01/2008, 05:13
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Consulta con paginator...

No, en realidad la consulta es:

$cat = $_POST[cat];

SELECT codigo, nombre, .... FROM noticias WHERE categoria = (SELECT codigo FROM categorias WHERE codigo = $cat) ORDER BY fecha;

$_pagi_cuantos = 10;

El error pone que hay un error en select count(*) cerca de 'codigo = $cat) ORDER BY fecha'.
Digo yo si es que se raya al poner el pagi_cuanto=10...

Un saludo,
  #4 (permalink)  
Antiguo 09/01/2008, 06:09
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Consulta con paginator...

Pues si que es un misterio, porque en la consulta que pones no hay ningun select count(*) , que imagino que sera de la funcion del paginador.

Aventurando otra respuesta (no conozco el codigo del paginator): esa consulta se la pasas como parametro, el paginator la usa para crear sus consultas y no es compatible con subconsultas. Solucion: no la hagas como subconsulta, haz la consulta primero, usa el valor devuelto para crear la consulta que pasas al paginator.

Por cierto, SELECT codigo FROM categorias WHERE codigo=$cat siempre va a devlver $cat, esa subconsulta no tiene sentido.
  #5 (permalink)  
Antiguo 10/01/2008, 02:19
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Consulta con paginator...

El SELECT COUNT(*) es cosa del paginator, imagino que estara contando el numero de filas y coger solamente 10 ($_pagi_cuantos = 10;).
Yo imagine que el problema era debido a que el paginator no admite subconsultas, pero me parecia muy raro... No se si hay que poner algun parentesis mas para que lo entienda el paginator o que... Pero bueno, si no hay ninguna otra solucion, hare lo que dices.

Por cierto, tienes razon, se me ha colado al escribirla:

SELECT codigo, nombre, .... FROM noticias WHERE categoria = (SELECT codigo FROM categorias WHERE nombre = $cat) ORDER BY fecha;

Un saludo,
  #6 (permalink)  
Antiguo 10/01/2008, 09:47
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: Consulta con paginator...

Revisa la web de paginator, hay una variable que se llama $_pagi_alternativo o algo así que si la usas, usa un método alternativo para contar los resultados.

Saludos.
  #7 (permalink)  
Antiguo 10/01/2008, 11:52
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Consulta con paginator...

Si, es asi, configura asi:

Código PHP:
 
$_pagi_conteo_alternativo 
true;
$_pagi_cuantos 10
No tendrás problemas.... creo

Saludos
  #8 (permalink)  
Antiguo 11/01/2008, 05:00
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Consulta con paginator...

Cierto, ya funciona... no habia oido hablar de esa variable.

Gracias,
  #9 (permalink)  
Antiguo 05/06/2008, 09:17
Avatar de jacin  
Fecha de Ingreso: enero-2007
Ubicación: Alicante
Mensajes: 62
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Consulta con paginator...

Hola..tengo un problemilla con el paginator y es que solo quiero paginar los 40 primeros articulos que devuelva la BD, alguien sabe si existe alguna variable para indicarselo???
Ahora me los muestra todos.

Gracias.

P.D.-Una pena que no se vaya actualizando este script mas a menudo.
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 02:04.