Ver Mensaje Individual
  #9 (permalink)  
Antiguo 29/07/2011, 07:21
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Ordenar y presentar Arrays para una índice de libros

Buenas de nuevo.

Eso complica un poco el tema, pero ya me lo imaginaba. De todas formas, te pregunto otra cosilla: puedes modificar la base de datos y el formulario de alta? Si es así, yo añadiría a la tabla un campo llamado level, de forma que tuviéramos un level=0 para el primer orden de título, level=1 para el segundo y así de forma prograsiva. A la hora de añadir un nuevo subtítulo tendrías que añadirlo con nivel = nivel_padre + 1.

Parecen ganas de complicarse la vida, pero si lo haces así, la consulta se te queda muy simple, ya que tu ordenación sería simplemente ORDER BY level, order.

Luego sólo tendrías que llevar una variable en el bucle de lectura que almacenara el $level de la iteracción anterior y, si cambia, sabes que estás en uno nuevo. Es decir, algo así:
Código PHP:
$level = -1
while (/*bucle que recorre el array del SELECT almacenado en $result*/) {
    if (
$level != $result['level']) {
        echo 
"aquí pegamos un salto de nivel, hacer lo que se quiera, por ejemplo, meter un tabulador";
    }
    echo 
"mostrar datos del capítulo";
    
$level $result['level'];

No es exactamente la solución que esperabas, pero es lo más rápido y sencillo que se me ha ocurrido. Creo que compensa sobradamente añadir el campo level contra ejecutar varios bucles para la ordenación correcta del array de resultados.

Un saludo, espero que te sirva, ha sido un problema interesante cuanto menos.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?