listaAgrupada lista agrupada (PHP)
//Ejemplo para recordar que hay que aplanarlo (indexarlo) empleando un campo, que se establece como
//segundo parámetro:
$imagenes = $seleccionadas->Archivo->listaAgrupada( "Webex.id as id, Archivo.orden, concat('./',Archivo.ruta,Archivo.nombrearchivo, '.',Archivo.extension ) as imagen", "Webex.id" );
/* LISTA AGRUPADA
Lista agrupada, lo que hace es dada un listado, crea un array con keys los valores
de la agrupación, que a su vez contiene arrays cuyo key es SIEMPRE el campo
"id" del registro y el valor el registro en si. Si no tiene campo "id", usar otro en su
lugar que sea único u otro cualquiera, pero si no es unico la estructura al ser un array
asociativo se pisará
No olvidarse de proporcionar siempre el segundo parametro, el campo que se empleará como indice
*/
$PersonalLogros = new PersonalLogros();
$PersonalLogros->relacion("PersonalLogrosUsuarios","left");
$lista = $PersonalLogros->PersonalLogrosUsuarios->listaAgrupada("
id,
PersonalLogros.logro,
PersonalLogros.tipo", "tipo");
salida del ejemplo:
array (size=2)
'Elegante' =>
array (size=3)
16 =>
array (size=3)
'id' => string '16' (length=2)
'logro' => string 'Puntualidad tres palabras' (length=25)
'tipo' => string 'Elegante' (length=8)
6 =>
array (size=3)
'id' => string '6' (length=1)
'logro' => string 'Amabilidad' (length=10)
'tipo' => string 'Elegante' (length=8)
8 =>
array (size=3)
'id' => string '8' (length=1)
'logro' => string 'Amabilidad' (length=10)
'tipo' => string 'Elegante' (length=8)
'Eficaz' =>
array (size=3)
'' =>
array (size=3)
'id' => null
'logro' => string 'Generico ejemplo' (length=16)
'tipo' => string 'Eficaz' (length=6)
12 =>
array (size=3)
'id' => string '12' (length=2)
'logro' => string 'Atlético' (length=9)
'tipo' => string 'Eficaz' (length=6)
10 =>
array (size=3)
'id' => string '10' (length=2)
'logro' => string 'Resolutor' (length=9)
'tipo' => string 'Eficaz' (length=6)
/*
La lista agrupada, te saca un montón de filas agrupadas por aquellas que tienen un campo en común.
Ese campo, será la key primaria del array, y las demás filas como descendientes.
El primer parámetro son los campos que queremos, y el segundo, el campo agrupador.
Es importante que el campo agrupador esté en la query del primer parámetro.
Por ejemplo, queremos todas las páginas que tienen un mismo padre:
(Téngase en cuenta que el padre de una pagína se define por el campo idPagina)
*/
$web->webPaginas->apilaEstado();
$web->webPaginas->añadeFiltro("idpagina in(".($paginasPadre?serializar(array_keys($paginasPadre)):"'fasad21'").") and visible=1");
$paginasHijas=$web->webPaginas->listaAgrupada("id,clave,enlace,titulo,idpagina,campo1_dependencia,campo2_dependencia,campo3_dependencia,valor1_dependencia,valor2_dependencia,valor3_dependencia,visibilidad_autenticacion","idpagina");
$web->webPaginas->desapilaEstado();