false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); $sql = "use $dbname"; $dbi->exec($sql); } catch(PDOException $e) { die( $sql . "
" . $e->getMessage()); } ############### function aggiorna($sql,$dbi,$sql2,$num){ $ret=0; try{ $res = $dbi->prepare("$sql"); $res->execute(); $ret= 1; } catch(PDOException $e) { $ret=0; echo "
".$num.") Fallito: $sql"; return $ret; } if("$sql2"!=""){ try{ $res = $dbi->prepare("$sql2"); $res->execute(); $ret=2; } catch(PDOException $e) { $ret=0; echo "
".$num.") Fallito: $sql2"; return $ret; } } echo "
".$num.") Aggiornato
"; return $ret; } function aggiorna_index($sql,$dbi,$sql2,$num){ $ret=0; try{ $res = $dbi->prepare("$sql"); $res->execute(); $ret= 1; } catch(PDOException $e) { $ret=0; echo "
".$num.") Fallito: $sql"; return $ret; } if("$sql2"!=""){ try{ $res = $dbi->prepare("$sql2"); $res->execute(); $ret=2; } catch(PDOException $e) { $ret=0; echo "
".$num.") Fallito: $sql2"; return $ret; } } echo "
".$num.") Index aggiornato
"; return $ret; } $num=0; function controllo($tabella,$campo,$num) { global $dbi, $dbname; $sql="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' AND TABLE_NAME = '$tabella'"; $res = $dbi->prepare("$sql"); $res->execute(); if($res->rowCount() and $campo=='') return 1; while(list($nome)=$res->fetch(PDO::FETCH_NUM)) {if($nome==$campo) { echo "
".$num.") Aggiornamento già effettuato
"; return 1;}} return 0; } $sql="SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$dbname' AND COLUMN_NAME = 'Versione'"; $res = $dbi->prepare("$sql"); $res->execute(); if(!controllo($prefix.'_config','versione',++$num)) { $sql="alter table `".$prefix."_config` change column `Versione` `versione` int(3)"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_gruppo','num_circ',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_gruppo` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`"; $ret=aggiorna($sql,$dbi,'',$num); # if(!$ret) echo "
".$num.") Fallito: $sql"; else echo "
".$num.") Aggiornato
"; } if(!controllo($prefix.'_ele_voti_gruppo','num_gruppo',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_lista','num_gruppo',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_gruppo`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_lista','num_circ',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_voti_lista','num_lista',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_voti_lista` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_sez`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_voti_ref','num_gruppo',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_voti_ref` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_voti_candidati','num_cand',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD `num_cand` INT(2) UNSIGNED NOT NULL AFTER `id_sez`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_candidati','num_lista',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_candidati` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_lista`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_sezioni','colore',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_sezioni` ADD `colore` VARCHAR(50) NULL AFTER `solo_lista`"; $ret=aggiorna($sql,$dbi,$sql2,$num); } echo "
Aggiornamento per nuovo sistema dei controlli di congruità"; if(!controllo($prefix.'_ele_controlli','id_cons',++$num)) { $sql="CREATE TABLE if not exists`".$prefix."_ele_controlli` ( `id_cons` INT(11) NOT NULL , `id_sez` INT(11) NOT NULL , `tipo` VARCHAR(10) NOT NULL , `id` INT(11) NOT NULL , INDEX `sezione` (`id_sez`)) ENGINE = MyISAM"; echo "
".$num.") Creazione tabella dei controlli: "; $ret=aggiorna($sql,$dbi,'',$num); } echo "
Eliminazione della vecchia tabella dei controlli: "; if(controllo($prefix.'_ele_controllisez','',++$num)) { $sql="DROP TABLE if exists `".$prefix."_ele_controllisez`"; $ret=aggiorna($sql,$dbi,'',$num); } else echo "
$num) Tabella non presente
"; $sql="update `".$prefix."_ele_voti_gruppo` as t1 left join `".$prefix."_ele_gruppo` as t2 on t1.id_gruppo=t2.id_gruppo set t1.num_gruppo=t2.num_gruppo;"; $ret=aggiorna($sql,$dbi,'',++$num); $sql="update `".$prefix."_ele_voti_lista` as t1 left join `".$prefix."_ele_lista` as t2 on t1.id_lista=t2.id_lista set t1.num_lista=t2.num_lista;"; $ret=aggiorna($sql,$dbi,'',++$num); ############################################## $sql="ALTER TABLE `".$prefix."_ele_gruppo` CHANGE `num_circ` `num_circ` INT(2) UNSIGNED NOT NULL DEFAULT '1';"; $ret=aggiorna($sql,$dbi,'',++$num); $sql="ALTER TABLE `".$prefix."_ele_lista` CHANGE `num_gruppo` `num_gruppo` INT(2) UNSIGNED NOT NULL DEFAULT '0';"; $ret=aggiorna($sql,$dbi,'',++$num); $sql="ALTER TABLE `".$prefix."_ele_lista` CHANGE `num_circ` `num_circ` INT(2) UNSIGNED NOT NULL DEFAULT '1';"; $ret=aggiorna($sql,$dbi,'',++$num); $sql="DROP TABLE `".$prefix."_ele_fasce`"; $ret=aggiorna($sql,$dbi,'',++$num); $sql="CREATE TABLE `".$prefix."_ele_fasce` ( `id_fascia` int(2) NOT NULL, `abitanti` int(11) NOT NULL, `seggi` int(4) NOT NULL, `id_conf` int(11) DEFAULT 1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;"; $sql2="INSERT INTO `".$prefix."_ele_fasce` (`id_fascia`, `abitanti`, `seggi`, `id_conf`) VALUES (1, 3000, 12, 1), (2, 10000, 16, 1), (3, 15000, 20, 1), (4, 30000, 20, 1), (5, 100000, 30, 1), (6, 250000, 40, 1), (7, 500000, 46, 1), (8, 1000000, 50, 1), (9, 100000000, 60, 1), (1, 3000, 12, 2), (2, 10000, 16, 2), (3, 15000, 20, 2), (4, 30000, 20, 2), (5, 100000, 30, 2), (6, 250000, 40, 2), (7, 500000, 46, 2), (8, 1000000, 50, 2), (9, 100000000, 60, 2), (1, 3000, 9, 3), (2, 5000, 9, 3), (4, 15000, 16, 3), (3, 10000, 12, 3), (5, 30000, 16, 3), (6, 100000, 24, 3), (7, 250000, 32, 3), (8, 500000, 36, 3), (9, 1000000, 40, 3), (10, 100000000, 48, 3), (1, 3000, 6, 4), (2, 5000, 7, 4), (3, 10000, 12, 4), (4, 15000, 16, 4), (5, 30000, 16, 4), (6, 100000, 24, 4), (7, 250000, 32, 4), (8, 500000, 36, 4), (9, 1000000, 40, 4), (10, 100000000, 48, 4), (1, 3000, 9, 5), (2, 5000, 9, 5), (3, 10000, 12, 5), (4, 15000, 16, 5), (5, 30000, 16, 5), (6, 100000, 24, 5), (7, 250000, 32, 5), (8, 500000, 36, 5), (9, 1000000, 40, 5), (10, 100000000, 48, 5), (1, 3000, 6, 6), (2, 5000, 7, 6), (3, 10000, 10, 6), (4, 15000, 16, 6), (5, 30000, 16, 6), (6, 100000, 24, 6), (7, 250000, 32, 6), (8, 500000, 36, 6), (9, 1000000, 40, 6), (10, 100000000, 48, 6), (1, 3000, 10, 7), (2, 10000, 12, 7), (3, 15000, 16, 7), (4, 30000, 16, 7), (5, 100000, 24, 7), (6, 250000, 32, 7), (7, 500000, 36, 7), (8, 1000000, 40, 7), (9, 100000000, 48, 7);"; $ret=aggiorna($sql,$dbi,$sql2,++$num); #if(!$ret) echo "
".$num++.") Fallito: $sql"; else echo "
".$num++.") Aggiornato
"; $sql="ALTER TABLE `".$prefix."_ele_fasce` ADD KEY `id_fascia` (`id_fascia`);"; $ret=aggiorna($sql,$dbi,'',++$num); #if(!$ret) echo "
".$num++.") Fallito: $sql"; else echo "
".$num++.") Aggiornato
"; $sql="ALTER TABLE `".$prefix."_ele_voti_ref` DROP INDEX `id_cons`; "; $sql2="ALTER TABLE `".$prefix."_ele_voti_ref` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); #if(!$ret) # echo "
".$num++.") Fallito: $sql"; #elseif ($ret==1) # echo "
".$num++.") Index eliminato"; #else # echo "
".$num++.") Index aggiunto"; $sql="ALTER TABLE `".$prefix."_ele_voti_lista` DROP INDEX `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_voti_lista` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_lista`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` DROP INDEX `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_gruppo`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_voti_candidati` DROP INDEX `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_cand`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_lista` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX `PRIMARY`"; $sql2="ALTER TABLE `".$prefix."_ele_lista` ADD PRIMARY KEY (`id_lista`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_circ`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX `PRIMARY`"; $sql2="ALTER TABLE `".$prefix."_ele_gruppo` ADD PRIMARY KEY (`id_gruppo`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_candidati` ADD INDEX `id_cons` (`id_cons`, `id_lista`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); $sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX `PRIMARY`"; $sql2="ALTER TABLE `".$prefix."_ele_candidati` ADD PRIMARY KEY (`id_cand`) USING BTREE"; $ret=aggiorna_index($sql,$dbi,$sql2,++$num); ?>