Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/01/2013, 03:01
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 17 años
Puntos: 574
Respuesta: Reorganizar entradas

No uses nunca el id para eso....

Primero porque cambiar el id de un registro es como si cambiaras la cedula de identidad de una persona, tendras problemas si tienes relaciones con otras tablas....

Ademas si el id es autoinc nada te asegura que sea correlativo puedes tener 1,3,4,6,7...

Yo crearia un campo nuevo llamado orden a este le puedes hacer los cambios que quieras puesto que no es el identificador... lo mantendria siempre correlativo es decir si se elimina un registro digamos el registro con orden=3

Haces

1,2,3,4,5

1,2,4,5

UPDATE tutabla SET orden=orden+1 WHERE orden>3

1,2,3,4

y para cambiar el orden de los registros lo puedes hacer como sigue

El 5 con id=X passarlo al 7

1,2,3,4,5,6,7

UPDATE tutabla SET orden=orden-1 WHERE orden>5 AND orden<=7

1,2,3,4,5(X),5,6

UPDATE tutabla SET orden=7 WHERE id=X

1,2,3,4,5,6,7


Si vas a usar una flechita para indicar en que dirección quieres mover un registro luego sabes que registro vas a mover con programación externa puedes calcular exactamente el orden del registro superior o inferior (orden+1 o orden-1) con lo que fácilmente puedes hacer los update... siempre apoyando te en el orden del registro a mover y su id.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 23/01/2013 a las 03:11