Ver Mensaje Individual
  #10 (permalink)  
Antiguo 11/02/2014, 03:51
xinxan22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Problema ordenando datos en query

Cita:
Iniciado por quimfv Ver Mensaje
Siento haberte hecho perder el tiempo.... pensaba que lo tenia solucionado solo con un order by pero veo que no.

Yo uso una query ordenada como sigue

Código MySQL:
Ver original
  1. ...order by nivel,padre,orden;

y apartir de ella con programación externa obengo el orden que pedias.

La programación externa es off topic en este foro... pero espero que explicar la estrategia seguida no lo sea....

Vamos a crear un ArrayDef con el orden buscado

Código pre:
Ver original
  1. ArrayDef = array() fuera del bucle
  2. Inicio Bucle sobre los registros en el orden anterior
  3.  
  4.      Declaro ArrayBefore y ArrayAfter
  5.      Si RegistroActual.padre=0  
  6.          inserto RegistroActual en la última posición del ArrayDef
  7.      Si RegistroActual.padre<>0
  8.          Inicio bucle sobre ArrayDef
  9.              leo ArrayDef hasta encontrar al padre y/o un hermano de orden inferior
  10.                      los guardo en ArrayBefore,
  11.              luego sigo leyendo ArrayDef hasta el final
  12.                      los guardo en ArrayAfter
  13.          loop
  14.          Redeclaro ArrayDef=array() (se queda vacia)
  15.          Inserto en ArrayDef
  16.              ArrayBefore, RegistroActual, ArrayAfter
  17.      fin si
  18. loop

Padre es cero cuando no hay un progenitor....



Hola,

yo lo he solucionado de esta forma aunque, hay el peligro de cuantas más carpetas más bucles:


Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Última edición por gnzsoloyo; 11/02/2014 a las 03:57