Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2009, 07:01
principiantedelweb
 
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