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