Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/07/2011, 05:45
gr0uch0mars
 
Fecha de Ingreso: diciembre-2009
Ubicación: Madrid
Mensajes: 16
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ordenar y presentar Arrays para una índice de libros

Algo así había pensado, pero no recuerdo dónde pregunté algo parecido y me recomendaron una solución que no implicaba tantas queries (una para comprobar si hay un "child" de cada capítulo), mejorando la performance.

A ver qué te parece esta idea, y si se podría afinar un poco:

Sacar TODOS los capítulos, ordenados por Parent, Order ASC:
Parent | Order | ID
0 | 1 | 1
0 | 2 | 2
0 | 3 | 5
2 | 1 | 3
2 | 2 | 4

No saldrían en el orden correcto, pero al menos tendríamos en un array todos los datos necesarios.

Al presentar los datos, seleccionar sólo los que interesan: En un primer foreach seleccionar sólo los que "$item['parent'] = 0", y para cada uno a su vez, uno en que compruebe su hay un "$item['parent'] = $item['ID'] (pero el primer Parent se refiere al del subcapítulo y el segundo al ID del item actual, no el del subcapítulo)

Código PHP:
foreach ($results as $item)
{
    
// Seleccionar solo los que tienen Parent = 0
    
if ($item['parent'] = 0)
    {
        echo 
$item['ID']; // Y mostrar el resto de la información de este capítulo...

        // Repetir para subcapítulos cuyo 'parent' = $item['ID'], ¿¿¿con un while, con otro foreach???
        // Y así sucesivamente (para cada uno comprobar si en el array hay alguno cuyo Parent coincida con el ID actual...
    
}