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($tab,$ind,$dbi,$sql2,$num){ $ret=0; $sqltest="SHOW INDEX FROM `$tab` WHERE KEY_NAME = '$ind'"; $res = $dbi->prepare("$sqltest"); $res->execute(); if($res->rowCount()) { $sql="ALTER TABLE `$tab` DROP INDEX `$ind`"; try{ $res = $dbi->prepare("$sql"); $res->execute(); $ret= 1; } catch(PDOException $e) { $ret=0; echo "
".$num.") Fallito: $sql -- $e->getmessage()"; 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; } 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; } $num=0; 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_operatori','id_circ',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_operatori` ADD `id_circ` INT(11) NOT NULL DEFAULT 0 AFTER `aid`"; $ret=aggiorna($sql,$dbi,'',$num); } if(!controllo($prefix.'_ele_operatori','id_sez',++$num)) { $sql="ALTER TABLE `".$prefix."_ele_operatori` ADD `id_sez` INT(11) NOT NULL DEFAULT 0 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 `soraldo_authors` CHANGE `adminsuper` `adminsuper` TINYINT(2) NOT NULL DEFAULT '0';"; $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
"; #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 if exists `id_cons`"; $tab=$prefix."_ele_voti_ref"; $ind="id_cons"; # $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($tab, $ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_voti_lista"; $ind="id_cons"; $sql2="ALTER TABLE `".$prefix."_ele_voti_lista` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_lista`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_voti_gruppo"; $ind="id_cons"; #$sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` DROP INDEX if exists `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_gruppo`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_voti_candidati"; $ind="id_cons"; #$sql="ALTER TABLE `".$prefix."_ele_voti_candidati` DROP INDEX if exists `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_cand`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_lista"; $ind="id_cons"; #$sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX if exists `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_lista` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_lista"; $ind="PRIMARY"; #$sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX if exists `PRIMARY`"; $sql2="ALTER TABLE `".$prefix."_ele_lista` ADD PRIMARY KEY (`id_lista`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_gruppo"; $ind="id_cons"; #$sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX if exists `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_circ`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_gruppo"; $ind="PRIMARY"; #$sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX if exists `PRIMARY`"; $sql2="ALTER TABLE `".$prefix."_ele_gruppo` ADD PRIMARY KEY (`id_gruppo`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_candidati"; $ind="id_cons"; #$sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX if exists `id_cons`"; $sql2="ALTER TABLE `".$prefix."_ele_candidati` ADD INDEX `id_cons` (`id_cons`, `id_lista`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_candidati"; $ind="PRIMARY"; #$sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX if exists `PRIMARY`"; $sql2="ALTER TABLE `".$prefix."_ele_candidati` ADD PRIMARY KEY (`id_cand`) USING BTREE"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); $tab=$prefix."_ele_consultazione"; $ind="descrizione"; #$sql="ALTER TABLE `".$prefix."_ele_consultazione` DROP INDEX if exists `descrizione`"; $sql2="ALTER TABLE `".$prefix."_ele_consultazione` ADD UNIQUE `descrizione` (`descrizione`(100))"; $ret=aggiorna_index($tab,$ind,$dbi,$sql2,++$num); ?>