/** * Calcula y recupera las ids de los pinchos finalistas * * * @param $numero numero de pinchos que pasan a la final * @throws PDOException si existe un error con la base de datos * @return $idPinchos array con las ids de los pinchos que pasan a la final * */ public function calcularFinalistas($numero) { $pinchoMap = new Pinchomapper(); $concursoMap = new Concursomapper(); $stmt = $this->db->prepare("SELECT idpincho FROM pincho"); $stmt->execute(); $idPinchosRecuperados = $stmt->fetchAll(); $notasVotacionProfesional = array(); $totalVotacionPopular = array(); $idsPincho = array(); $arrayGlobal = array(array()); $x = 0; foreach ($idPinchosRecuperados as $idPincho) { $notasVotacionProfesiona[$x] = $pinchoMap->recuperarNotaMedia($idPincho[0]) * 100; $totalVotacionPopular[$x] = $pinchoMap->recuperarTotalVotosPopulares($idPincho[0]); $idsPincho[$x] = $idPincho[0]; $arrayGlobal[$x] = array('vp' => $notasVotacionProfesiona[$x], 'po' => $totalVotacionPopular[$x], 'id' => $idsPincho[$x]); $x++; } $x--; $numeroTotalPinchos = $x; $pinchosADevolver = $numeroTotalPinchos - $numero; $arrayGlobal = $pinchoMap->msort($arrayGlobal, array('vp', 'po', 'id')); $idPinchos = array(); for (; $x > $pinchosADevolver; $x--) { $idPinchos[$x] = $arrayGlobal[$x]['id']; $pinchoMap->establecerFinalista($arrayGlobal[$x]['id']); } $concursoMap->faseFinal(1); return $idPinchos; }