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: 17 años, 6 meses
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