Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Orden en registros MySQL

Estas en el tema de Orden en registros MySQL en el foro de Mysql en Foros del Web. Saludos buenas Otra vez más, concretamente después de casi un mes buscando la solución al problema, me encuentro con que tengo una página web, de ...
  #1 (permalink)  
Antiguo 12/06/2009, 09:43
 
Fecha de Ingreso: diciembre-2008
Ubicación: Valencia
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 0
Orden en registros MySQL

Saludos buenas


Otra vez más, concretamente después de casi un mes buscando la solución al problema, me encuentro con que tengo una página web, de la cual he desarrollado un panel de control, y necesito que los vídeos se ordenen por un número de orden, me explico:

La tabla vídeos tiene los siguientes campos: id, urlvideo, urlfoto, orden, estado

Se ordenan de menor a mayor orden, estando el número 1 arriba de la tabla, y por ejemplo el 10 más abajo.

El problema está en que si quiero que el 5to vídeo esté el cuarto, tengo que cambiar los números de todos los vídeos para que respete este orden, y vale si hay dos vídeos está bien, pero si hay 50 ó 100 vídeos la cosa cambia.

¿Se os ocurre alguna idea en php usando bucles o lo que sea, para que al cambiar el orden de uno, reste o sume números en los campos del resto automáticamente?

Me ahorraría bastante faena


Muchas gracias por vuestra ayuda

Un saludo
  #2 (permalink)  
Antiguo 12/06/2009, 09:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Orden en registros MySQL

Se me ocurre que pongas un selector, en el que eliges la posición de orden del video, ya sabes 1, 2, 3, etc. hasta el total que tengas guardados + uno. Lo generas con la lista de valores de ese campoorden en la base o con programación, pero debes añadir uno más para tener todo el rango.
Luego al seleccionar la posición
haces un update del tipo
UPDATE tabla SET campoorden = campoorden + 1 WHERE campoorden >= variableposicionorden
y luego insertas el nuevo registro con esa posición
INSERT INTO tabla (campo1, campo2, campoorden) VALUES (valorcampo1, valorcampo2, variableposicionorden
Ya sólo te queda controlar que si eliges el último valor, sólo haga la inserción sin la actualización.

No he probado nada
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 23:14.