Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/08/2004, 03:41
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Otras soluciones:

- añadir a tu tabla un campo 'posicion' que modificas cuando elimines un registro

UPDATE tabla SET posicion=posicion-1 WHERE posicion>$posicion_registro_eliminado

o

- no calcules el ID a leer con $dato-1 (anterior) o $dato+1 (siguiente), lee el primer registro menor (mayor) de $dato ordenados de mayor (menor) a menor (mayor) (entre parentesis es la logica para siguiente)

SELECT * FROM tabla WHERE ID<$dato ORDER BY ID DESC (para anterior)
SELECT * FROM tabla WHERE ID>$dato ORDER BY ID ASC (para siguiente)

Puede añadir un LIMIT, ya que solo vas a leer el primero. Y con estas consultas tambien puedes saber si hay otros anteriores o posteriores a este, ya que si es el ultimo solo devuelve un registro (si usas LIMIT, puedes poner LIMIT 2 para poder seguir comprobando esto).

Saludos.

PD: Esto es lo bueno de la programacion: preguna a 10 programadores y obtendras 15 respuestas diferentes totalmente validas
__________________
Josemi

Aprendiz de mucho, maestro de poco.