$n = 0; $s = 0; $anagrafiche = Utente::conta([]); $volontari = Utente::filtra([['stato', VOLONTARIO]]); $sesso = ['M' => 0, 'F' => 0]; $eta = [[[0, 30], 0], [[30, 41], 0], [[41, 51], 0], [[51, 66], 0], [[66, 999], 0]]; $anzianita = [[[0, 1], 0], [[1, 5], 0], [[5, 10], 0], [[10, 21], 0], [[21, 30], 0], [[30, 999], 0]]; $ora = new DateTime(); foreach ($volontari as $v) { $ingresso = $v->ingresso(); if (!$ingresso) { $s++; continue; } $n++; $sesso[Utente::sesso($v->codiceFiscale)]++; foreach ($eta as &$_e) { $min = $_e[0][0]; $max = $_e[0][1]; $e = $v->eta(); if ($e >= $min && $e < $max) { $_e[1]++; } } foreach ($anzianita as &$_e) { $min = $_e[0][0]; $max = $_e[0][1]; $diff = $ora->diff($ingresso); if ($diff->y >= $min && $diff->y < $max) { $_e[1]++; }
public function anzianitaMembri($stato = MEMBRO_VOLONTARIO) { $q = $this->db->prepare("\n SELECT \n appartenenza.inizio, anagrafica.codiceFiscale\n FROM \n anagrafica, appartenenza\n WHERE \n anagrafica.id = appartenenza.volontario\n AND\n appartenenza.comitato = :comitato\n AND\n appartenenza.stato = :stato"); $q->bindParam(':comitato', $this->id); $q->bindParam(':stato', $stato); $q->execute(); $r = []; while ($k = $q->fetch(PDO::FETCH_NUM)) { $sesso = Utente::sesso($k[1]); $r[] = ['ingresso' => $k[0], 'sesso' => $sesso]; } return $r; }