Index: /trunk/admin/aggiornadb.php
===================================================================
--- /trunk/admin/aggiornadb.php	(revision 356)
+++ /trunk/admin/aggiornadb.php	(revision 357)
@@ -13,5 +13,5 @@
 	} 
 ###############
-function aggiorna($sql,$dbi,$sql2){
+function aggiorna($sql,$dbi,$sql2,$num){
 	$ret=0;
 	try{
@@ -23,4 +23,6 @@
 	{
 	 $ret=0;
+	 echo "<br>".$num.") Fallito: $sql";
+	 return $ret;
 	}
 
@@ -34,149 +36,286 @@
 		{
 		  $ret=0;
+		  echo "<br>".$num.") Fallito: $sql2";
+		  return $ret;
 		}
 	} 
+	echo "<br>".$num.") Aggiornato<br>";
 	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 "<br>".$num.") Fallito: $sql";
+	 return $ret;
+	}
+
+	if("$sql2"!=""){
+		try{
+		  $res = $dbi->prepare("$sql2");
+		  $res->execute();		
+		  $ret=2;
+		}	
+		catch(PDOException $e)
+		{
+		  $ret=0;
+		  echo "<br>".$num.") Fallito: $sql2";
+		  return $ret;
+		}
+	} 
+	echo "<br>".$num.") Index aggiornato<br>";
+	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 "<br>".$num.") Aggiornamento giÃ  effettuato<br>"; 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($res->rowCount()) 
-{
-	$sql="alter table `soraldo_config` change column `Versione` `versione` int(3)";
-	$ret=aggiorna($sql,$dbi,'');
+$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);
 }	
 
-$num=1;
-#$sql="alter table `soraldo_config` change column `Versione` `versione` int(3)";
-#$ret=aggiorna($sql,$dbi);
+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 "<br>".$num.") Fallito: $sql"; else echo "<br>".$num.") Aggiornato<br>";
+}	
+
+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 "<br>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 "<br>".$num.") Creazione tabella dei controlli: ";
+	$ret=aggiorna($sql,$dbi,'',$num);
+}
+
+echo "<br>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 "<br>$num) Tabella non presente<br>";
+
+$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 "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_gruppo` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_voti_gruppo` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_lista` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_gruppo`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_lista` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_voti_lista` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_voti_ref` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_voti_candidati` ADD `num_cand` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_candidati` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_lista`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="ALTER TABLE `soraldo_ele_voti_ref` DROP INDEX `id_cons`; ";
-$sql2="ALTER TABLE `soraldo_ele_voti_ref` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_voti_lista` DROP INDEX `id_cons`";
-$sql2="ALTER TABLE `soraldo_ele_voti_lista` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_lista`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_voti_gruppo` DROP INDEX `id_cons`";
-$sql2="ALTER TABLE `soraldo_ele_voti_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_gruppo`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_voti_candidati` DROP INDEX `id_cons`";
-$sql2="ALTER TABLE `soraldo_ele_voti_candidati` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_cand`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_lista` DROP INDEX `id_cons`";
-$sql2="ALTER TABLE `soraldo_ele_lista` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_lista` DROP INDEX `PRIMARY`";
-$sql2="ALTER TABLE `soraldo_ele_lista` ADD PRIMARY KEY (`id_lista`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_gruppo` DROP INDEX `id_cons`";
-$sql2="ALTER TABLE `soraldo_ele_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_circ`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_gruppo` DROP INDEX `PRIMARY`";
-$sql2="ALTER TABLE `soraldo_ele_gruppo` ADD PRIMARY KEY (`id_gruppo`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_candidati` DROP INDEX `id_cons`";
-$sql2="ALTER TABLE `soraldo_ele_candidati` ADD INDEX `id_cons` (`id_cons`, `id_lista`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_candidati` DROP INDEX `PRIMARY`";
-$sql2="ALTER TABLE `soraldo_ele_candidati` ADD PRIMARY KEY (`id_cand`) USING BTREE";
-$ret=aggiorna($sql,$dbi,$sql2);
-if(!$ret) 
-	echo "<br>".$num++.") Fallito: $sql"; 
-elseif ($ret==1) 
-	echo "<br>".$num++.") Index eliminato"; 
-else
-	echo "<br>".$num++.") Index aggiunto";
-$sql="ALTER TABLE `soraldo_ele_sezioni` ADD `colore` VARCHAR(50) NULL AFTER `solo_lista`";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="CREATE TABLE if not exists`soraldo_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";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="update `soraldo_ele_voti_gruppo` as t1 left join `soraldo_ele_gruppo` as t2 on t1.id_gruppo=t2.id_gruppo set t1.num_gruppo=t2.num_gruppo;";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
-$sql="update `soraldo_ele_voti_lista` as t1 left join `soraldo_ele_lista` as t2 on t1.id_lista=t2.id_lista set t1.num_lista=t2.num_lista;";
-$ret=aggiorna($sql,$dbi,'');
-if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
+
+$sql="ALTER TABLE `".$prefix."_ele_fasce`
+  ADD KEY `id_fascia` (`id_fascia`);";
+$ret=aggiorna($sql,$dbi,'',++$num);
+#if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
+
+
+	$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 "<br>".$num++.") Fallito: $sql"; 
+#elseif ($ret==1) 
+#	echo "<br>".$num++.") Index eliminato"; 
+#else
+#	echo "<br>".$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);
+
 
 ?>
Index: /trunk/admin/ctrldb.php
===================================================================
--- /trunk/admin/ctrldb.php	(revision 357)
+++ /trunk/admin/ctrldb.php	(revision 357)
@@ -0,0 +1,66 @@
+<?php
+
+include("config.php");
+	try{
+	$dbi = new PDO("mysql:host=$dbhost;charset=latin1", $dbuname, $dbpass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 
+     	$sql = "use $dbname";
+    	$dbi->exec($sql);
+        }
+	catch(PDOException $e)
+	{
+	    echo $sql . "<br>" . $e->getMessage();
+	}             
+
+$lines = file('./inc/sql/db.sql');
+$tabko = array();
+
+$x=0;
+$y=0;
+foreach ($lines as $line_num => $line) { 
+	if(!$x) {
+#		$len=strlen($line)-2;
+		$line=chop($line);
+		$nometab = $prefix.substr($line, 1,-1);#echo "LINE: $nometab -- x: $x --<br>";
+		$x=1;
+		continue;
+	}elseif(!$y){
+		$elenco=explode(",", $line);
+		$y=1;
+		$x=0;
+		continue;
+	}else{
+		$x=0;
+		$sql="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' AND TABLE_NAME = '$nometab'";
+		$rest = $dbi->prepare("$sql");
+		$rest->execute(); #echo "SQL: $sql";
+		$line=chop($line); #elimina spazi in fondo alla stringa
+		$remcampi=explode(",", $line);
+		$campi=count($remcampi);
+		$loccampip=$rest->fetchAll();
+		$loccampi=array();
+		foreach($loccampip as $z=>$loc) array_push($loccampi,$loc[0]);
+		$ctrloc=array();
+		$ctrloc=array_diff($remcampi,$loccampi);
+		$ctrrem=array_diff($loccampi,$remcampi);
+		if(count($ctrloc) or count($ctrrem)) {$divcolor="red"; $u=1;} else {$divcolor="green"; $u=0;}
+		echo "Controllo Tabella: $nometab<br>";
+		foreach($ctrloc as $z=>$loc) echo "<div style=\"color:$divcolor;\">&nbsp;&nbsp;&nbsp;&nbsp;Il campo ".$loc." non Ãš presente nella tua tabella<br></div>";
+		foreach($ctrrem as $z=>$rem) echo "<div style=\"color:$divcolor;\">&nbsp;&nbsp;&nbsp;&nbsp;Il campo $rem Ãš presente solo nella tua tabella, andrebbe eliminato<br></div>";
+		echo "<div style=\"color:$divcolor;\">&nbsp;&nbsp;LA TABELLA $nometab";
+		if($u) echo " DEVE ESSERE AGGIORNATA!"; else echo " E' AGGIORNATA";
+		echo "<br></div>";
+
+	}
+
+}		
+		
+/*
+	
+if(count($tabko))
+	foreach($tabko as $val)
+		echo "<br>Da aggiornare: $val";
+else
+	echo "Tutte le tabelle sono aggiornate.";	
+	*/	
+
+?>
Index: /trunk/admin/inc/sql/db.sql
===================================================================
--- /trunk/admin/inc/sql/db.sql	(revision 357)
+++ /trunk/admin/inc/sql/db.sql	(revision 357)
@@ -0,0 +1,76 @@
+[_elencotabelle]
+_access,_authors,_config,_doc_cons,_ele_candidati,_ele_circoscrizione,_ele_collegi,_ele_come,_ele_comu_collegi,_ele_comuni,_ele_conf,_ele_cons_comune,_ele_consultazione,_ele_controlli,_ele_documenti,_ele_fasce,_ele_gruppo,_ele_link,_ele_lista,_ele_log,_ele_modelli,_ele_numeri,_ele_operatori,_ele_province,_ele_regioni,_ele_rilaff,_ele_sede,_ele_servizi,_ele_sezioni,_ele_temi,_ele_tipo,_ele_voti_candidati,_ele_voti_gruppo,_ele_voti_lista,_ele_voti_parziale,_ele_voti_ref,_ele_widget
+[_access]
+access_id,access_title
+[_authors]
+aid,name,id_comune,email,pwd,counter,adminop,admincomune,adminsuper,admlanguage
+[_config]
+sitename,siteurl,site_logo,slogan,startdate,adminmail,tema,foot,language,blocco,testata,nome_testata,fileout,copyright,versione,patch,siteistat,multicomune,flash,displayerrors,gkey,googlemaps,editor,tema_on,ed_user,secret
+[_doc_cons]
+id_cons,id_doc,tabella
+[_ele_candidati]
+id_cand,id_cons,id_lista,num_lista,cognome,nome,note,simbolo,num_cand
+[_ele_circoscrizione]
+id_cons,id_circ,num_circ,descrizione
+[_ele_collegi]
+id_collegio,id_cons_gen,descrizione
+[_ele_come]
+id_cons,mid,title,preamble,content,editimage
+[_ele_comu_collegi]
+id_collegio,id_cons,id_comune,id_cons_gen
+[_ele_comuni]
+id_comune,descrizione,indirizzo,centralino,fax,email,fascia,capoluogo,simbolo,stemma,id_cons,cap
+[_ele_conf]
+id_conf,descrizione,limite,consin,infpremio,supsbarramento,suppremio,listinfsbar,listinfconta,listsupconta,supminpremio,infminpremio,infdisgiunto,supdisgiunto,votolista,inffisso,supfisso,fascia_capoluogo
+[_ele_cons_comune]
+id_cons,chiusa,id_comune,id_cons_gen,id_conf,preferita,preferenze,id_fascia,vismf,solo_gruppo,disgiunto
+[_ele_consultazione]
+id_cons_gen,descrizione,data_inizio,data_fine,tipo_cons
+[_ele_controlli]
+id_cons,id_sez,tipo,id
+[_ele_documenti]
+id_doc,descrizione,nomedoc,filedoc
+[_ele_fasce]
+id_fascia,abitanti,seggi,id_conf
+[_ele_gruppo]
+id_cons,id_gruppo,num_gruppo,descrizione,simbolo,stemma,id_circ,num_circ,prognome,programma
+[_ele_link]
+id_cons,mid,title,preamble,content,editimage
+[_ele_lista]
+id_cons,id_lista,num_lista,id_gruppo,num_gruppo,id_circ,num_circ,descrizione,simbolo,stemma
+[_ele_log]
+id_cons,id_sez,utente,data,ora,log_da,log_a,tabella
+[_ele_modelli]
+id_cons,categoria,modello
+[_ele_numeri]
+id_cons,mid,title,preamble,content,editimage
+[_ele_operatori]
+id_cons,id_sede,id_comune,permessi,aid
+[_ele_province]
+id,descrizione
+[_ele_regioni]
+id,descrizione
+[_ele_rilaff]
+id_cons_gen,orario,data
+[_ele_sede]
+id_cons,id_sede,id_circ,indirizzo,telefono1,telefono2,fax,responsabile,mappa,filemappa
+[_ele_servizi]
+id_cons,mid,title,preamble,content,editimage
+[_ele_sezioni]
+id_cons,id_sez,id_sede,num_sez,maschi,femmine,validi,nulli,bianchi,contestati,solo_gruppo,autorizzati_m,autorizzati_f,voti_nulli,validi_lista,contestati_lista,voti_nulli_lista,solo_lista,colore
+[_ele_temi]
+id,tema
+[_ele_tipo]
+tipo_cons,descrizione,lingua,genere,voto_g,voto_l,voto_c,circo
+[_ele_voti_candidati]
+id_cons,id_cand,id_sez,num_cand,voti
+[_ele_voti_gruppo]
+id_cons,id_gruppo,id_sez,num_gruppo,voti,solo_gruppo
+[_ele_voti_lista]
+id_cons,id_lista,id_sez,num_lista,voti,nulli_lista,solo_lista
+[_ele_voti_parziale]
+id_cons,id_sez,id_parz,orario,data,voti_uomini,voti_donne,voti_complessivi,id_gruppo
+[_ele_voti_ref]
+id_cons,id_gruppo,id_sez,num_gruppo,si,no,validi,nulli,bianchi,contestati
+[_ele_widget]
+id,nome_file,titolo,pos_or,pos_ver,attivo
Index: /trunk/admin/modules/Elezioni/ele_associazioni.php
===================================================================
--- /trunk/admin/modules/Elezioni/ele_associazioni.php	(revision 356)
+++ /trunk/admin/modules/Elezioni/ele_associazioni.php	(revision 357)
@@ -403,5 +403,5 @@
 			$result = $dbi->prepare("$sql");
 			$result->execute();	
-			$sql="delete from ".$prefix."_ele_controllosez where id_cons=$idcns";
+			$sql="delete from ".$prefix."_ele_controlli where id_cons=$idcns";
 			$result = $dbi->prepare("$sql");
 			$result->execute();	
Index: /trunk/admin/versione.php
===================================================================
--- /trunk/admin/versione.php	(revision 356)
+++ /trunk/admin/versione.php	(revision 357)
@@ -1,7 +1,7 @@
 <?php
 
-$versione = "3.0 rev 356";
+$versione = "3.0 rev 357";
 $version_number = $versione;
-$datarel = "28 settembre 2021";
+$datarel = "29 dicembre 2021";
 $version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
 
Index: /trunk/client/modules/Elezioni/blocchi/02_risultati.php
===================================================================
--- /trunk/client/modules/Elezioni/blocchi/02_risultati.php	(revision 356)
+++ /trunk/client/modules/Elezioni/blocchi/02_risultati.php	(revision 357)
@@ -17,12 +17,14 @@
 if($genere!='0'){ // referendum e circoscrizionali
     list ($gruppo,$pro)=grupporss();
-    if ($gruppo!='')echo "<h5>Risultati </h5>";
+    if ($gruppo!=''){
+		echo "<h5>Risultati </h5>";
     //$content .="<div style=\"text-align:left;\"><strong>$descr_cons</strong></div><br/>";
-    echo "<table>";
-    for($x=0;$x<count($gruppo);$x++){
-	echo "<tr><td class=\"td-big\">&middot;</td><td>".$gruppo[$x]." </td><td  style=\"text-align:right\"><b><span style=\"color:#ff0000;\">".$pro[$x] ."%</span></b></td></tr>\n";
-    }
-    echo "</table>";
-
+		echo "<table>";
+		if(count($gruppo))
+			for($x=0;$x<count($gruppo);$x++){
+		echo "<tr><td class=\"td-big\">&middot;</td><td>".$gruppo[$x]." </td><td  style=\"text-align:right\"><b><span style=\"color:#ff0000;\">".$pro[$x] ."%</span></b></td></tr>\n";
+		}
+		echo "</table>";
+	}
   //echo $content;
 }
Index: /trunk/client/modules/Elezioni/consiglieri.php
===================================================================
--- /trunk/client/modules/Elezioni/consiglieri.php	(revision 356)
+++ /trunk/client/modules/Elezioni/consiglieri.php	(revision 357)
@@ -399,5 +399,5 @@
 	if(!isset($ele[$x][0])) $ele[$x][0]=0;
 	if(!isset($pref[$x])) $pref[$x]=0;
-   if ($ele[$x][0]==$temp and $pref[$x]==$pref[$cand] and ($y+1)==$num_cons) {$sorteggio=1; $mex="Per attribuire l'ultimo seggio ï¿œ necessario un sorteggio tra la lista n. ".($x+1)." e la lista n. ".($cand+1);}
+   if ($ele[$x][0]==$temp and $pref[$x]==$pref[$cand] and ($y+1)==$num_cons) {$sorteggio=1; $mex="Per attribuire l'ultimo seggio Ãš necessario un sorteggio tra la lista n. ".($x+1)." e la lista n. ".($cand+1);}
   if ($ele[$x][0]>$temp or ($ele[$x][0]==$temp and $pref[$x]>$pref[$cand])) {
    $temp=$ele[$x][0];
@@ -786,5 +786,5 @@
 				if($quozienti[$ultimo][($val)]==$last[$lst]) 
 				{
-						if($lists[$ultimo]==$lists[$lst]) $mex="Per attribuire l'ultimo seggio ï¿œ necessario un sorteggio tra la lista n. $ultimo e la lista n. $lst";
+						if($lists[$ultimo]==$lists[$lst] and $ultimo!=$lst) $mex="Per attribuire l'ultimo seggio Ãš necessario un sorteggio tra la lista n. $ultimo e la lista n. $lst";
 	 					elseif($lists[$ultimo]>$lists[$lst]) {$ultimo=$lst;$mex="";}
 	 			}
Index: /trunk/client/versione.php
===================================================================
--- /trunk/client/versione.php	(revision 356)
+++ /trunk/client/versione.php	(revision 357)
@@ -1,7 +1,7 @@
 <?php
 
-$versione = "3.0 rev 356";
+$versione = "3.0 rev 357";
 $version_number = $versione;
-$datarel = "28 settembre 2021";
+$datarel = "29 dicembre 2021";
 $version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
 
