Foros del Web » Programando para Internet » PHP »

array multidimensional para respuesta json

Estas en el tema de array multidimensional para respuesta json en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/11/2009, 17:47
Avatar de 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
  #2 (permalink)  
Antiguo 12/11/2009, 19:19
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: array multidimensional para respuesta json

Tengo una solucion. Tuve que limpiar un array antes de cada bucle. Y reposicionar una adjudicacion.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.