$c->add(OppCaricaHasAttoPeer::CARICA_ID, $carica->getId()); $res = OppCaricaHasAttoPeer::doSelectRS($c); $firme = array(); while ($res->next()) { $firme[$res->getInt(1)] = $res->getString(2); } $politici[$i]['firme'] = $firme; unset($res); $nfirme = count($firme); echo " ({$nfirme} firme)\n"; } // update dei valori delle firme for ($i = 0; $i < $ncariche; $i++) { $dd = OppSimilaritaPeer::retrieveByPK($politici[$i]['id'], $politici[$i]['id']); if (is_null($dd)) { $dd = new OppSimilarita(); $dd->setCaricaFromId($politici[$i]['id']); $dd->setCaricaToId($politici[$i]['id']); } for ($j = $i + 1; $j < $ncariche; $j++) { $d = OppSimilaritaPeer::retrieveByPK($politici[$i]['id'], $politici[$j]['id']); if (is_null($d)) { $d = new OppSimilarita(); $d->setCaricaFromId($politici[$i]['id']); $d->setCaricaToId($politici[$j]['id']); } $d->setSigningSimilarity(OppSimilaritaPeer::similarityForSignatures($politici[$i], $politici[$j]) / $ncariche); $d->save(); // scrittura elemento simmetrico $ds = OppSimilaritaPeer::retrieveByPK($politici[$j]['id'], $politici[$i]['id']); if (is_null($ds)) {
// scrittura completa della matrice simmetrica delle similarità // tranne la diagonale che è nulla per default for ($i = 0; $i < $ncariche; $i++) { $dd = OppSimilaritaPeer::retrieveByPK($politici[$i]['id'], $politici[$i]['id']); if (is_null($dd)) { $dd = new OppSimilarita(); $dd->setCaricaFromId($politici[$i]['id']); $dd->setCaricaToId($politici[$i]['id']); } $dd->save(); $dd = null; unset($dd); for ($j = $i + 1; $j < $ncariche; $j++) { $d = OppSimilaritaPeer::retrieveByPK($politici[$i]['id'], $politici[$j]['id']); if (is_null($d)) { $d = new OppSimilarita(); $d->setCaricaFromId($politici[$i]['id']); $d->setCaricaToId($politici[$j]['id']); } $d->setVotingSimilarity(OppSimilaritaPeer::similarityForVotes($politici[$i], $politici[$j], $ramo) / $ncariche); $d->save(); // scrittura elemento simmetrico $ds = OppSimilaritaPeer::retrieveByPK($politici[$j]['id'], $politici[$i]['id']); if (is_null($ds)) { $ds = new OppSimilarita(); $ds->setCaricaFromId($d->getCaricaToId()); $ds->setCaricaToId($d->getCaricaFromId()); } $ds->setVotingSimilarity($d->getVotingSimilarity()); $ds->save(); $ds = null;