Foros del Web » Programando para Internet » PHP »

PHP OO Problema al paginar resultados con order by

Estas en el tema de Problema al paginar resultados con order by en el foro de PHP en Foros del Web. HOLA; Tengo un problema para paginar los resultados de una consulta a la BD. En realidad salen todos los resultados SOLO que a partir de ...
  #1 (permalink)  
Antiguo 09/08/2012, 16:33
Avatar de jusualle  
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Problema al paginar resultados con order by

HOLA;

Tengo un problema para paginar los resultados de una consulta a la BD.

En realidad salen todos los resultados SOLO que a partir de la segunda linea se pierde el ORDER BY

El campo destaque tiene 4 valores simples que son 1, 2, 3, 4

yo quiero que salgan primero todos los resultados con el campo de destaque con el valor 1 después todos los del 2, el 3 y al final el 4

En la primera fila de 5 salen perfectamente los resultados con el valor 1
pero a partir de la segunda fila se pierde porque me muestra los resultados con el valor 2 habiendo aún mas resultados con el valor 1

por ejemplo si son 12 resultados con el valor 1, 7 con el valor 2, 9 con el valor 3, y 6 con el valor 4

Quisiera que se muestren las filas de la siguiente manera:
11111
11111
11222
22223
33333
33344
44444

Pero se muestran asi:
11111
22222
22211
11314
44444

ya probe ORDER BY destaque ASC
ó
ORDER BY 'destaque' ASC, 'id' ASC

Este es mi codigo:
Cita:
if (!isset($pag))
$pag = 1; // $pag es la pagina actual
$cantidad=35; // cantidad de resultados por página
$inicial = $pag * $cantidad-$cantidad;

$pegar = "SELECT * FROM anuncios WHERE status='Activo' ORDER BY destaque ASC LIMIT $inicial,$cantidad";
$cad = mysql_query($pegar) or die (mysql_error());
$total_publicaciones= @mysql_num_rows($cad);

$contar = "SELECT * FROM anuncios WHERE status='Activo' ORDER BY destaque ASC";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
De antemano gracias por su ayuda.
  #2 (permalink)  
Antiguo 09/08/2012, 16:52
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema al paginar resultados con order by

Quiero suponer que tu campo "destaque" en realidad son varios, destaque 2, destaque3 etc.

De ser así, tienes que indicar que ordene por los otros campos:

ORDER BY destaque ASC,destaque2 ASC,destaque3 ASC etc

Si es un solo campo, habría que ver sus valores ya que no creo que fueran numéricos.
  #3 (permalink)  
Antiguo 09/08/2012, 17:13
Avatar de jusualle  
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al paginar resultados con order by

Solo es un campo destaque y almacena los valores 1, 2, 3, y 4
  #4 (permalink)  
Antiguo 09/08/2012, 18:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al paginar resultados con order by

Técnicamente la consulta es correcta, qué pasa si la ejecutas en PHPMyAdmin?

Ahora, tienes dos consultas que hacen exactamente lo mismo, pero, realmente no son necesarias ni adecuadas para contar:

SELECT COUNT(*) FROM tabla WHERE condición

Esto contará todos los registros que cumplan con la condición, no tienes que especificar orden ni límite y puedes recoger el valor con algo como:

list($total_registros) = mysql_fetch_row(/* recurso usado para ejecutar la consulta */);
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: mysql, order, paginar, resultados
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 17:31.