Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2009, 17:47
Avatar de mayid
mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
array multidimensional para respuesta json

Hola. Se me complico hacer un array multidimensional, y se me fue el dia en esto. Perdi el buen ritmo de la semana!

Tengo un bucle que consulta a mysql, y arma un listado de fotos. Si esas fotos tienen adjuntos (ref) entonces tengo otro bucle para los adjuntos.

Los adjuntos estas declarados en un campor "ref". En mysql los guardo separados por comas. Ej: 40,50,24,16,57

Todas las fotos tienen un id, y la ref hace referencia a ese id.

Necesito este resultado:

Código PHP:
            [75] => Array
                (
                    [
titulo] => 
                    [
id_foto] => 75_copa.jpg
                    
[descripcion] => 
                    [
lightbox] => Array
                        (
                            [
60] => Array
                                (
                                    [
id] => 60
                                    
[ruta] => fotos/1/60_copa2.jpg
                                    
[descripcion] => 
                                )

                            [
66] => Array
                                (
                                    [
id] => 66
                                    
[ruta] => fotos/1/66_Guillermo_perez_perfil.jpg
                                    
[descripcion] => 
                                )

                            [
72] => Array
                                (
                                    [
id] => 72
                                    
[ruta] => fotos/1/72_kandinsky0001.gif
                                    
[descripcion] => 
                                )

                        )

                ) 
Y lo estoy obteniendo, pero a partir de que alguno de mis item tiene anexos, todos los que le siguen van heredando esos anexos aunque no les correspondan.

Este es el bucle:

Código PHP:
while($item mysql_fetch_array($resultado))
    {
    
    
$return["items"][$item['id']]['titulo']= $item['titulo'];
    
$return["items"][$item['id']]['id_foto']= $item['id_foto'];
    
$return["items"][$item['id']]['descripcion']= $item['descripcion'];
    

    if (
$item['ref']!="0") {
        
        
// listado de fotos que se van a anexar a $item['id']
        
$ind $item['ref'];
                
        
$ids explode(",",$ind);
        
            
        foreach (
$ids as $id)
        {
        
$id trim($id); 
        if (
$id==""){} //elimino elementos vacios
        
        
$referidas mysql_query("SELECT id, ruta, id_foto, titulo FROM publicaciones WHERE id = '$ind'");
        
        while(
$anexa  mysql_fetch_array($referidas)){
            
            
$ruta str_replace("../","",$anexa['ruta']);
                        
            
$lista_fotos[$anexa['id']]['id']= $anexa['id'];            
            
$lista_fotos[$anexa['id']]['ruta']= $ruta.$anexa['id_foto'];
            
$lista_fotos[$anexa['id']]['descripcion']= $anexa['titulo'];
        }; 
// end while
        
        
$return["items"][$item['id']]['lightbox'] = $lista_fotos;
        }    
        }
    
    }; 

Última edición por mayid; 12/11/2009 a las 18:18