Foros del Web » Programando para Internet » PHP »

Problema con los registros

Estas en el tema de Problema con los registros en el foro de PHP en Foros del Web. Hola amigos. Siempre trato de hacer las cosas yo, pero en este caso el problema me supera. Tengo 2000 registros de una base de datos. ...
  #1 (permalink)  
Antiguo 25/11/2009, 07:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema con los registros

Hola amigos. Siempre trato de hacer las cosas yo, pero en este caso el problema me supera. Tengo 2000 registros de una base de datos. En una página, tomo los 100 primeros, mientras que en otro tomo los 100 segundos y así sucesivamente.
Por ejemplo, en la pagina 1 tomo registros del 1 al 100 y los coloco de determinadas formas (order by id desc, etc.). Pero para la siguiente página, quiero los registros 101 al 200 y no lo he podido lograr, ni siquiera cambiando los parámetros de la cláusula LIMIT. Ok, aca pongo el código, a ver que pasa:

Cita:

<?php
$query = "SELECT count(id) AS Total from rank WHERE id>1 AND id<101";
$row2=mysql_fetch_assoc(mysql_query($query));
$total_records = $row2['Total'];
$records_per_page = 5;
$total_pages = ceil($total_records / $records_per_page);
$page = intval($_GET["p"]);
if ($page < 1 || $page > $total_pages) $page = 1;
$offset = ($page - 1) * $records_per_page;
$limit = " LIMIT $offset, $records_per_page";
$query = "SELECT * from rank ORDER BY votos DESC, nombre ASC $limit";
$resultado = mysql_query($query);
while ($row = mysql_fetch_assoc($resultado))
{......................... (EL CODIGO CONTINUA)
La primer oracion toma los primeros 100 registros de la tabla rank. Cuando cambio los valores id (1 y 101), no pasa nada. Por ejemplo, "WHERE id>101 AND id<201", no toma los valores del 101 al 201.
Luego de pensar mucho, me di cuenta que en el segundo $query, mira todos los registros y luego selecciona los 100 mejores ordenados por votos y nombre.
Yo lo que quiero es que, por ejemplo, seleccione únicamente los registros del 101 al 201 y luego que tiene solo esos, los ordene por votos, nombre, etc.
Bueno, muchas gracias.

Última edición por principiantedelweb; 25/11/2009 a las 07:34
  #2 (permalink)  
Antiguo 25/11/2009, 07:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con los registros

Hola, ya solucioné el problema. Tuve que usar la clausula "between" en el segundo $query, para limitar los registros. Quedaría entonces:
Cita:
$query= "SELECT * from rank WHERE id BETWEEN 100 and 200 ORDER BY votos DESC, nombre ASC $limit";
En donde con "BETWEEN", selecciona especificamente los registros del 100 al 200 y luego los ordena segun los votos (de mayor a menor), por nombre (de la letra "a" a la "z"), etc.
Bueno, espero que a otro le sirve, igualmente 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 22:55.