source: trunk/admin/modules/Elezioni/aggiornadb.php

Last change on this file was 429, checked in by roby, 12 days ago
  • ADMIN

-- Aggiunta funzione di estrazione dati in csv per consiglieri
-- Aggiunto un controllo per le tabelle voti_lista e voti_consiglieri

File size: 26.4 KB
Line 
1<?php
2
3#imposta il charset su utf8, qualsiasi altro valore per cambiarlo in latin1;
4$newcs='utf8';
5global $ctrlerr;
6
7/*
8@require_once("../../config.php");
9 try{
10 $dbi = new PDO("mysql:host=$dbhost", $dbuname, $dbpass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
11 $sql = "use $dbname";
12 $dbi->exec($sql);
13 }
14 catch(PDOException $e)
15 {
16 die( $sql . "<br>" . $e->getMessage());
17 }
18*/
19
20###############
21function aggiorna($sql,$dbi,$sql2,$num){
22 $ret=0;
23 try{
24 $res = $dbi->prepare("$sql");
25 $res->execute();
26 $ret= 1;
27 }
28 catch(PDOException $e)
29 {
30 $ret=0;
31 $ctrlerr=1;
32 echo "<br><span style=\"color: red;\">- Aggiornamento Fallito: $sql</span>";
33 return $ret;
34 }
35
36 if("$sql2"!=""){
37 try{
38 $res = $dbi->prepare("$sql2");
39 $res->execute();
40 $ret=2;
41 }
42 catch(PDOException $e)
43 {
44 $ret=0;
45 $ctrlerr=1;
46 echo "<br><span style=\"color: red;\">- Aggiornamento Fallito: $sql2</span>";
47 return $ret;
48 }
49 }
50 echo "<br><span style=\"color: green;\">- Aggiornamento eseguito correttamente</span>";
51 return $ret;
52}
53
54function aggiorna_index($tab,$ind,$dbi,$sql2,$num){
55 $ret=0;
56# $conn->getAttribute( constant( "PDO::ATTR_$val" ) )
57 $sqltest="SHOW INDEX FROM `$tab` WHERE KEY_NAME = '$ind'";
58 $res = $dbi->prepare("$sqltest");
59 $res->execute();
60
61 if($res->rowCount()) {
62 if($ind=='PRIMARY')
63 $sql="ALTER TABLE `$tab` DROP PRIMARY KEY , $sql2 ";
64 else
65 $sql="ALTER TABLE `$tab` DROP INDEX `$ind`";
66 try{
67 $res = $dbi->prepare("$sql");
68 $res->execute();
69 $ret= 1;
70 }
71 catch(PDOException $e)
72 {
73 $ret=0;
74 $ctrlerr=1;
75 echo "<br><span style=\"color: red;\">- Tabella: $tab - Indice: $ind - Aggiornamento Fallito: $sql</span>";
76 return $ret;
77 }
78 }
79 if("$sql2"!="" and $ind!='PRIMARY'){
80 try{
81 $res = $dbi->prepare("$sql2");
82 $res->execute();
83 $ret=2;
84 }
85 catch(PDOException $e)
86 {
87 $ret=0;
88 $ctrlerr=1;
89 echo "<br><span style=\"color: red;\">- Tabella: $tab - Indice: $ind - Aggiornamento Fallito: $sql2</span>";
90 return $ret;
91 }
92 }
93 echo "<br><span style=\"color: green;\">- Tabella: $tab - Indice: $ind - Index aggiornato</span>";
94 return $ret;
95}
96
97
98
99
100function controllo($tabella,$campo,$num)
101{
102 global $dbi, $dbname;
103 $sql="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' AND TABLE_NAME = '$tabella'";
104 $res = $dbi->prepare("$sql");
105 $res->execute();
106 if($res->rowCount() and $campo=='') return 1;
107 while(list($nome)=$res->fetch(PDO::FETCH_NUM)) {if($nome==$campo) { echo "<br>".$num.") Il campo: $campo Ú presente nella tabella: $tabella"; return 1;}}
108 if($campo) echo "<br>$num) Il campo: $campo non Ú presente nella tabella: $tabella";
109 return 0;
110}
111
112$num=0;
113
114if(controllo($prefix.'_authors','admincomune',++$num))
115{
116 $sql="UPDATE `".$prefix."_authors` SET `adminsuper` = '0',`admincomune` = '0' WHERE `".$prefix."_authors`.`aid` != 'admin' AND `".$prefix."_authors`.`adminsuper` != '1'";
117 $ret=aggiorna($sql,$dbi,'',$num);
118 $sql="UPDATE `".$prefix."_authors` SET `adminop` = '0', `adminsuper` = '0',`admincomune` = '1' WHERE `".$prefix."_authors`.`aid` = 'admin' and `".$prefix."_authors`.`adminsuper` != '1'";
119 $ret=aggiorna($sql,$dbi,'',$num);
120 $sql="UPDATE `".$prefix."_authors` SET `adminop` = '0', `adminsuper` = '1',`admincomune` = '0' WHERE `".$prefix."_authors`.`aid` = 'suser' or `".$prefix."_authors`.`adminsuper` = '1'";
121 $ret=aggiorna($sql,$dbi,'',$num);
122 echo "<br> La tabella dei permessi Ú stata aggiornata<br>";
123}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_authors non richiede questo aggiornamento</span><br>";
124
125$sql="SELECT * from `".$prefix."_ele_widget` WHERE `soraldo_ele_widget`.`id` = 29";
126$res = $dbi->prepare("$sql");
127$res->execute();
128if($res->rowCount()) {
129 $sql="DELETE FROM soraldo_ele_widget WHERE `soraldo_ele_widget`.`id` = 29";
130 $res = $dbi->prepare("$sql");
131 $res->execute();
132 echo "<br> Il record cookie_law.php Ú stato eliminato dalla tabella dei widget, usare privacy.php<br>";
133} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_widget non richiede questo aggiornamento</span><br>";
134
135
136if(!controllo($prefix.'_ele_cons_comune','proiezione',++$num))
137{
138 $sql="ALTER TABLE `".$prefix."_ele_cons_comune` ADD `proiezione` ENUM('0','1') NOT NULL DEFAULT '0' AFTER `disgiunto`";
139 $ret=aggiorna($sql,$dbi,'',$num);
140 $sql="update `".$prefix."_ele_cons_comune` set proiezione='1' where chiusa='1' and id_conf>0";
141 $ret=aggiorna($sql,$dbi,'',$num);
142} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_cons_comune non richiede questo aggiornamento</span><br>";
143
144if(!controllo($prefix.'_config','versione',++$num))
145{
146 $sql="alter table `".$prefix."_config` change column `Versione` `versione` int(3)";
147 $ret=aggiorna($sql,$dbi,'',$num);
148} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_config non richiede questo aggiornamento</span><br>";
149if(!controllo($prefix.'_config','versione',++$num))
150{
151 $sql="alter table `".$prefix."_config` change column `Versione` `versione` int(3)";
152 $ret=aggiorna($sql,$dbi,'',$num);
153} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_config non richiede questo aggiornamento</span><br>";
154if(controllo($prefix.'_config','secret',++$num))
155{
156 $sql="alter table `".$prefix."_config` DROP `secret`";
157 $ret=aggiorna($sql,$dbi,'',$num);
158} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_config non richiede questo aggiornamento</span><br>";
159if(controllo($prefix.'_config','aggiornamento',++$num))
160{
161 $sql="alter table `".$prefix."_config` DROP `aggiornamento`";
162 $ret=aggiorna($sql,$dbi,'',$num);
163} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_config non richiede questo aggiornamento</span><br>";
164if(!controllo($prefix.'_ele_conf','votolista',++$num))
165{
166 $sql="ALTER TABLE `".$prefix."_ele_conf` ADD `votolista` enum('0', '1') NOT NULL DEFAULT '0' AFTER `supdisgiunto`";
167 $ret=aggiorna($sql,$dbi,'',$num);
168} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_conf non richiede questo aggiornamento</span><br>";
169if(!controllo($prefix.'_ele_conf','inffisso',++$num))
170{
171 $sql="ALTER TABLE `".$prefix."_ele_conf` ADD `inffisso` enum('0', '1') NOT NULL DEFAULT '0' AFTER `votolista`";
172 $ret=aggiorna($sql,$dbi,'',$num);
173} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_conf non richiede questo aggiornamento</span><br>";
174if(!controllo($prefix.'_ele_conf','supfisso',++$num))
175{
176 $sql="ALTER TABLE `".$prefix."_ele_conf` ADD `supfisso` enum('0', '1') NOT NULL DEFAULT '0' AFTER `inffisso`";
177 $ret=aggiorna($sql,$dbi,'',$num);
178} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_conf non richiede questo aggiornamento</span><br>";
179if(!controllo($prefix.'_ele_conf','fascia_capoluogo',++$num))
180{
181 $sql="ALTER TABLE `".$prefix."_ele_conf` ADD `fascia_capoluogo` int(2) NOT NULL DEFAULT '0' AFTER `supfisso`";
182 $ret=aggiorna($sql,$dbi,'',$num);
183} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_conf non richiede questo aggiornamento</span><br>";
184if(controllo($prefix.'_ele_sezioni','bianchi_lista',++$num))
185{
186 $sql="alter table `".$prefix."_ele_sezioni` DROP `bianchi_lista`";
187 $ret=aggiorna($sql,$dbi,'',$num);
188} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_sezioni non richiede questo aggiornamento</span><br>";
189if(controllo($prefix.'_ele_sezioni','nulli_lista',++$num))
190{
191 $sql="alter table `".$prefix."_ele_sezioni` DROP `nulli_lista`";
192 $ret=aggiorna($sql,$dbi,'',$num);
193} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_sezioni non richiede questo aggiornamento</span><br>";
194if(controllo($prefix.'_ele_voti_parziale','data',++$num))
195{
196 $sql="ALTER TABLE `".$prefix."_ele_voti_parziale` CHANGE `data` `data` DATE NOT NULL DEFAULT '1900-01-01'";
197 $ret=aggiorna($sql,$dbi,'',$num);
198 echo "<br>";
199}
200++$num;
201$sql="ALTER TABLE `".$prefix."_ele_come` CHANGE `title` `title` VARCHAR(150) NOT NULL DEFAULT ' ', CHANGE `preamble` `preamble` TEXT, CHANGE `content` `content` TEXT, CHANGE `editimage` `editimage` VARCHAR(100) NOT NULL DEFAULT ' '";
202$ret=aggiorna($sql,$dbi,'',$num);
203echo "<br>";
204if(!$ret) echo "Il tuo sistema non necessita di questo aggiornamento, questo avviso di errore va ignorato<br>";
205++$num;
206$sql="ALTER TABLE `".$prefix."_ele_link` CHANGE `title` `title` VARCHAR(150) NOT NULL DEFAULT ' ', CHANGE `preamble` `preamble` TEXT, CHANGE `content` `content` TEXT, CHANGE `editimage` `editimage` VARCHAR(100) NOT NULL DEFAULT ' '";
207$ret=aggiorna($sql,$dbi,'',$num);
208echo "<br>";
209if(!$ret) echo "Il tuo sistema non necessita di questo aggiornamento, questo avviso di errore va ignorato<br>";
210++$num;
211$sql="ALTER TABLE `".$prefix."_ele_servizi` CHANGE `title` `title` VARCHAR(150) NOT NULL DEFAULT ' ', CHANGE `preamble` `preamble` TEXT, CHANGE `content` `content` TEXT, CHANGE `editimage` `editimage` VARCHAR(100) NOT NULL DEFAULT ' '";
212$ret=aggiorna($sql,$dbi,'',$num);
213echo "<br>";
214if(!$ret) echo "Il tuo sistema non necessita di questo aggiornamento, questo avviso di errore va ignorato<br>";
215
216if(controllo($prefix.'_ele_rilaff','data',++$num))
217{
218 $sql="ALTER TABLE `".$prefix."_ele_rilaff` CHANGE `data` `data` DATE NOT NULL DEFAULT '1900-01-01'";
219 $ret=aggiorna($sql,$dbi,'',$num);
220 echo "<br>";
221}
222
223if(!controllo($prefix.'_ele_gruppo','num_circ',++$num))
224{
225 $sql="ALTER TABLE `".$prefix."_ele_gruppo` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`";
226 $ret=aggiorna($sql,$dbi,'',$num);
227} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_gruppo non richiede questo aggiornamento</span><br>";
228
229if(!controllo($prefix.'_ele_voti_gruppo','num_gruppo',++$num))
230{
231 $sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
232 $ret=aggiorna($sql,$dbi,'',$num);
233} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_gruppo non richiede questo aggiornamento</span><br>";
234
235if(!controllo($prefix.'_ele_lista','num_gruppo',++$num))
236{
237 $sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_gruppo`";
238 $sql2="update `".$prefix."_ele_lista` as t1 set t1.num_gruppo=(select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) where t1.num_gruppo=0 and (select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) is not null";
239 $ret=aggiorna($sql,$dbi,$sql2,$num);
240}else{
241 $sql="update `".$prefix."_ele_lista` as t1 set t1.num_gruppo=(select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) where t1.num_gruppo=0 and (select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) is not null";
242 $ret=aggiorna($sql,$dbi,'',$num);
243}
244echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_lista Ú stata aggiornata</span><br>";
245if(!controllo($prefix.'_ele_lista','num_circ',++$num))
246{
247 $sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`";
248 $ret=aggiorna($sql,$dbi,'',$num);
249}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_lista non richiede questo aggiornamento</span><br>";
250
251if(!controllo($prefix.'_ele_operatori','id_circ',++$num))
252{
253 $sql="ALTER TABLE `".$prefix."_ele_operatori` ADD `id_circ` INT(11) NOT NULL DEFAULT 0 AFTER `aid`";
254 $ret=aggiorna($sql,$dbi,'',$num);
255}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_operatori non richiede questo aggiornamento</span><br>";
256
257if(!controllo($prefix.'_ele_operatori','id_sez',++$num))
258{
259 $sql="ALTER TABLE `".$prefix."_ele_operatori` ADD `id_sez` INT(11) NOT NULL DEFAULT 0 AFTER `id_circ`";
260 $ret=aggiorna($sql,$dbi,'',$num);
261}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_operatori non richiede questo aggiornamento</span><br>";
262
263if(!controllo($prefix.'_ele_temi','id',++$num))
264{
265 $sql="ALTER TABLE `".$prefix."_ele_temi` ADD `id` INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`)";
266 $ret=aggiorna($sql,$dbi,'',$num);
267}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_operatori non richiede questo aggiornamento</span><br>";
268
269if(!controllo($prefix.'_ele_voti_lista','num_lista',++$num))
270{
271 $sql="ALTER TABLE `".$prefix."_ele_voti_lista` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
272 $ret=aggiorna($sql,$dbi,'',$num);
273}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_voti_lista non richiede questo aggiornamento</span><br>";
274
275if(!controllo($prefix.'_ele_voti_ref','num_gruppo',++$num))
276{
277 $sql="ALTER TABLE `".$prefix."_ele_voti_ref` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
278 $ret=aggiorna($sql,$dbi,'',$num);
279}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_voti_ref non richiede questo aggiornamento</span><br>";
280
281if(controllo($prefix.'_ele_candidati','Sesso',++$num))
282{
283 $sql="ALTER TABLE `".$prefix."_ele_candidati` DROP `Sesso`";
284 $ret=aggiorna($sql,$dbi,'',$num);
285} else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_candidati non richiede questo aggiornamento</span><br>";
286if(!controllo($prefix.'_ele_voti_candidati','num_cand',++$num))
287{
288 $sql="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD `num_cand` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
289 $ret=aggiorna($sql,$dbi,'',$num);
290}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_voti_candidati non richiede questo aggiornamento</span><br>";
291/*if(controllo($prefix.'_ele_candidati','num_lista',++$num))
292{
293 $sql="update `".$prefix."_ele_candidati` as t3 set t3.num_lista=(select t2.num_lista from `".$prefix."_ele_lista` as t2 left join `".$prefix."_ele_candidati` as t1 on t2.id_lista=t1.id_lista where t2.id_lista=t3.id_lista) where t3.num_lista=0";
294 $ret=aggiorna($sql,$dbi,'',$num);
295 echo "<br>Aggiornata la tabella ".$prefix."_ele_candidati";
296}*/
297if(!controllo($prefix.'_ele_candidati','num_lista',++$num))
298{
299 $sql="ALTER TABLE `".$prefix."_ele_candidati` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_lista`";
300 $sql2="update `".$prefix."_ele_candidati` as t1 set t1.num_lista=(select t2.num_lista from `".$prefix."_ele_lista` as t2 where t2.id_lista=t1.id_lista) where t1.num_lista=0 and (select t2.num_lista from `".$prefix."_ele_lista` as t2 where t2.id_lista=t1.id_lista) is not null";
301 $ret=aggiorna($sql,$dbi,$sql2,$num);
302}else{
303 $sql="update `".$prefix."_ele_candidati` as t1 set t1.num_lista=(select t2.num_lista from `".$prefix."_ele_lista` as t2 where t2.id_lista=t1.id_lista) where t1.num_lista=0 and (select t2.num_lista from `".$prefix."_ele_lista` as t2 where t2.id_lista=t1.id_lista) is not null";
304 $ret=aggiorna($sql,$dbi,'',$num);
305 }
306echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_candidati Ú stata aggiornata</span><br>";
307
308if(!controllo($prefix.'_ele_sezioni','colore',++$num))
309{
310 $sql="ALTER TABLE `".$prefix."_ele_sezioni` ADD `colore` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '#FAFAD2' AFTER `solo_lista`";
311 $ret=aggiorna($sql,$dbi,'',$num);
312}else{
313 $sql="ALTER TABLE `".$prefix."_ele_sezioni` CHANGE `colore` `colore` VARCHAR(50) DEFAULT '#FAFAD2'";
314 $ret=aggiorna($sql,$dbi,'',$num);
315} echo "<br>";
316
317echo "<br>Aggiornamento per nuovo sistema dei controlli di congruità";
318
319if(!controllo($prefix.'_ele_controlli','id_cons',++$num))
320{
321 $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";
322 echo "<br>".$num.") Creazione tabella dei controlli: ";
323 $ret=aggiorna($sql,$dbi,'',$num);
324}else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_controlli non richiede questo aggiornamento</span><br>";
325
326echo "<br>".++$num.") Eliminazione della vecchia tabella dei controlli: ";
327if(controllo($prefix.'_ele_controllisez','',$num))
328{
329$sql="DROP TABLE if exists `".$prefix."_ele_controllisez`";
330$ret=aggiorna($sql,$dbi,'',$num);
331} else echo "<br><span style=\"color: green;\">- Tabella non presente</span><br>";
332
333echo "<br>".++$num.") Aggiornamento tabella ".$prefix."_ele_voti_gruppo";
334$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;";
335$ret=aggiorna($sql,$dbi,'',$num);
336
337echo "<br>".++$num.") Aggiornamento tabella ".$prefix."_ele_conf";
338$sql="update `".$prefix."_ele_conf` SET `supdisgiunto` = '1' WHERE `soraldo_ele_conf`.`id_conf` = 7;";
339$ret=aggiorna($sql,$dbi,'',$num);
340
341echo "<br><br>".++$num.") Aggiornamento dei valori di default: ".$prefix."_ele_voti_lista";
342$sql="ALTER TABLE `".$prefix."_ele_voti_lista` CHANGE `num_lista` `num_lista` INT(2) UNSIGNED NULL DEFAULT '0';";
343$ret=aggiorna($sql,$dbi,'',$num);
344
345echo "<br><br>".++$num.") Aggiornamento tabella ".$prefix."_ele_voti_lista";
346$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;";
347$ret=aggiorna($sql,$dbi,'',$num);
348##############################################
349
350echo "<br><br>".++$num.") Aggiornamento dei valori di default: ".$prefix."_ele_gruppo";
351$sql="ALTER TABLE `".$prefix."_ele_gruppo` CHANGE `num_circ` `num_circ` INT(2) UNSIGNED NOT NULL DEFAULT '1';";
352$ret=aggiorna($sql,$dbi,'',$num);
353
354$sql="ALTER TABLE `".$prefix."_authors` CHANGE `adminsuper` `adminsuper` TINYINT(2) NOT NULL DEFAULT '0';";
355$ret=aggiorna($sql,$dbi,'',$num);
356
357$sql="ALTER TABLE `".$prefix."_ele_lista` CHANGE `num_gruppo` `num_gruppo` INT(2) UNSIGNED NOT NULL DEFAULT '0';";
358$ret=aggiorna($sql,$dbi,'',$num);
359
360$sql="ALTER TABLE `".$prefix."_ele_lista` CHANGE `num_circ` `num_circ` INT(2) UNSIGNED NOT NULL DEFAULT '1';";
361$ret=aggiorna($sql,$dbi,'',$num);
362
363echo "<br><br>".++$num.") Aggiornamento della tabella _ele_conf per la nuova gestione della L.R. Sicilia";
364$sql="UPDATE `".$prefix."_ele_conf` SET `inffisso` = '1' WHERE `id_conf` = 4;";
365$ret=aggiorna($sql,$dbi,'',$num);
366
367echo "<br><br>".++$num.") Aggiornamento del campo numero candidato della tabella _ele_voti_candidati per le consultazioni precedenti all'aggiunta del campo stesso";
368$sql="update `".$prefix."_ele_voti_candidati` as t1 left join `".$prefix."_ele_candidati` as t2 on t1.id_cand=t2.id_cand set t1.num_cand=t2.num_cand where t1.num_cand=0 and t2.num_cand>0;";
369$ret=aggiorna($sql,$dbi,'',$num);
370
371echo "<br><br>".++$num.") Ricostruzione della tabella ".$prefix."_ele_fasce`";
372$sql="DROP TABLE `".$prefix."_ele_fasce`";
373$ret=aggiorna($sql,$dbi,'',$num);
374
375$sql="CREATE TABLE `".$prefix."_ele_fasce` (
376 `id_fascia` int(2) NOT NULL,
377 `abitanti` int(11) NOT NULL,
378 `seggi` int(4) NOT NULL,
379 `id_conf` int(11) DEFAULT 1
380) ENGINE=MyISAM DEFAULT CHARSET 'utf8';";
381
382
383$sql2="INSERT INTO `".$prefix."_ele_fasce` (`id_fascia`, `abitanti`, `seggi`, `id_conf`) VALUES
384(1, 3000, 12, 1),
385(2, 10000, 16, 1),
386(3, 15000, 20, 1),
387(4, 30000, 20, 1),
388(5, 100000, 30, 1),
389(6, 250000, 40, 1),
390(7, 500000, 46, 1),
391(8, 1000000, 50, 1),
392(9, 100000000, 60, 1),
393(1, 3000, 12, 2),
394(2, 10000, 16, 2),
395(3, 15000, 20, 2),
396(4, 30000, 20, 2),
397(5, 100000, 30, 2),
398(6, 250000, 40, 2),
399(7, 500000, 46, 2),
400(8, 1000000, 50, 2),
401(9, 100000000, 60, 2),
402(1, 3000, 9, 3),
403(2, 5000, 9, 3),
404(4, 15000, 16, 3),
405(3, 10000, 12, 3),
406(5, 30000, 16, 3),
407(6, 100000, 24, 3),
408(7, 250000, 32, 3),
409(8, 500000, 36, 3),
410(9, 1000000, 40, 3),
411(10, 100000000, 48, 3),
412(1, 3000, 6, 4),
413(2, 5000, 7, 4),
414(3, 10000, 12, 4),
415(4, 15000, 16, 4),
416(5, 30000, 16, 4),
417(6, 100000, 24, 4),
418(7, 250000, 32, 4),
419(8, 500000, 36, 4),
420(9, 1000000, 40, 4),
421(10, 100000000, 48, 4),
422(1, 3000, 9, 5),
423(2, 5000, 9, 5),
424(3, 10000, 12, 5),
425(4, 15000, 16, 5),
426(5, 30000, 16, 5),
427(6, 100000, 24, 5),
428(7, 250000, 32, 5),
429(8, 500000, 36, 5),
430(9, 1000000, 40, 5),
431(10, 100000000, 48, 5),
432(1, 3000, 6, 6),
433(2, 5000, 7, 6),
434(3, 10000, 10, 6),
435(4, 15000, 16, 6),
436(5, 30000, 16, 6),
437(6, 100000, 24, 6),
438(7, 250000, 32, 6),
439(8, 500000, 36, 6),
440(9, 1000000, 40, 6),
441(10, 100000000, 48, 6),
442(1, 3000, 10, 7),
443(2, 10000, 12, 7),
444(3, 15000, 16, 7),
445(4, 30000, 16, 7),
446(5, 100000, 24, 7),
447(6, 250000, 32, 7),
448(7, 500000, 36, 7),
449(8, 1000000, 40, 7),
450(9, 100000000, 48, 7);";
451$ret=aggiorna($sql,$dbi,$sql2,$num);
452#if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
453
454$sql="ALTER TABLE `".$prefix."_ele_fasce`
455 ADD KEY `id_fascia` (`id_fascia`);";
456$ret=aggiorna($sql,$dbi,'',$num);
457#if(!$ret) echo "<br>".$num++.") Fallito: $sql"; else echo "<br>".$num++.") Aggiornato<br>";
458
459
460
461#if(!$ret)
462# echo "<br>".$num++.") Fallito: $sql";
463#elseif ($ret==1)
464# echo "<br>".$num++.") Index eliminato";
465#else
466# echo "<br>".$num++.") Index aggiunto";
467#$sql="ALTER TABLE `".$prefix."_ele_voti_lista` DROP INDEX if exists `id_cons`";
468echo "<br><br>".++$num.") Ricostruzione e aggioramento indici";
469$tab=$prefix."_ele_voti_ref";
470$ind="id_cons";
471# $sql="ALTER TABLE `".$prefix."_ele_voti_ref` DROP INDEX `id_cons`; ";
472$sql2="ALTER TABLE `".$prefix."_ele_voti_ref` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE";
473$ret=aggiorna_index($tab, $ind,$dbi,$sql2,$num);
474
475$tab=$prefix."_ele_sezioni";
476$ind="id_cons";
477$sql2="ALTER TABLE `".$prefix."_ele_sezioni` ADD UNIQUE `id_cons` (`id_cons`, `num_sez`) USING BTREE";
478$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
479
480$tab=$prefix."_ele_voti_lista";
481$ind="id_cons";
482$sql2="ALTER TABLE `".$prefix."_ele_voti_lista` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_lista`) USING BTREE";
483$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
484
485$tab=$prefix."_ele_voti_gruppo";
486$ind="id_cons";
487#$sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` DROP INDEX if exists `id_cons`";
488$sql2="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_gruppo`) USING BTREE";
489$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
490
491$tab=$prefix."_ele_voti_candidati";
492$ind="id_cons";
493#$sql="ALTER TABLE `".$prefix."_ele_voti_candidati` DROP INDEX if exists `id_cons`";
494$sql2="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_cand`) USING BTREE";
495$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
496
497$tab=$prefix."_ele_lista";
498$ind="id_cons";
499#$sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX if exists `id_cons`";
500$sql2="ALTER TABLE `".$prefix."_ele_lista` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE";
501$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
502
503$tab=$prefix."_ele_lista";
504$ind="PRIMARY";
505#$sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX if exists `PRIMARY`";
506$sql2="ADD PRIMARY KEY (`id_lista`) USING BTREE";
507$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
508
509$tab=$prefix."_ele_gruppo";
510$ind="id_cons";
511#$sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX if exists `id_cons`";
512$sql2="ALTER TABLE `".$prefix."_ele_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_circ`) USING BTREE";
513$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
514
515$tab=$prefix."_ele_gruppo";
516$ind="PRIMARY";
517#$sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX if exists `PRIMARY`";
518$sql2="ADD PRIMARY KEY (`id_gruppo`) USING BTREE";
519$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
520
521$tab=$prefix."_ele_candidati";
522$ind="id_cons";
523#$sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX if exists `id_cons`";
524$sql2="ALTER TABLE `".$prefix."_ele_candidati` ADD INDEX `id_cons` (`id_cons`, `id_lista`) USING BTREE";
525$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
526
527$tab=$prefix."_ele_candidati";
528$ind="PRIMARY";
529#$sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX if exists `PRIMARY`";
530$sql2="ADD PRIMARY KEY (`id_cand`) USING BTREE";
531$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
532
533$tab=$prefix."_ele_consultazione";
534$ind="descrizione";
535#$sql="ALTER TABLE `".$prefix."_ele_consultazione` DROP INDEX if exists `descrizione`";
536$sql2="ALTER TABLE `".$prefix."_ele_consultazione` ADD UNIQUE `descrizione` (`descrizione`(100))";
537$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
538
539echo "<br><br>".++$num.") Modifica Charset del database";
540if($newcs=='utf8') {
541 $cset='utf8';
542 $ccollate='utf8_general_ci';
543 $preset='latin1';
544}else{
545 $cset='latin1';
546 $ccollate='latin1_swedish_ci';
547 $preset='utf8';
548}
549#$sql="ALTER DATABASE $dbname CHARACTER SET '$cset' COLLATE '$ccollate'";
550#$res = $dbi->prepare("$sql");
551#$res->execute();
552
553$sql="SELECT table_name,column_name,column_default,column_type,is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' and (character_set_name='$preset' or collation_name like '$preset%')";
554$res = $dbi->prepare("$sql");
555$res->execute();
556$tab='';
557$agg=$res->rowCount();
558
559while(list($nometab,$campo,$def,$tipo,$nul)=$res->fetch(PDO::FETCH_NUM)) {
560 if($tab!=$nometab){
561 $sql="alter table $nometab DEFAULT CHARSET=$cset COLLATE $ccollate";
562 try{
563 $res2 = $dbi->prepare("$sql");
564 $res2->execute();
565 }
566 catch(PDOException $e)
567 {
568 die( $sql . "<br>" . $e->getMessage());
569 }
570 $tab=$nometab; echo "<br><span style=\"color: green;\">- Tabella: $nometab</span>";
571 }
572 if($def!='') $default="DEFAULT '$def'"; else $default='';
573 if($nul=='NO') $nullable='NOT NULL'; else $nullable='NULL';
574 $sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET '$cset' COLLATE '$ccollate' $nullable $default;";
575 try{
576 $res2 = $dbi->prepare("$sql");
577 $res2->execute();
578 }
579 catch(PDOException $e)
580 {
581 $default="DEFAULT $def";
582 $sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET '$cset' COLLATE '$ccollate' $nullable $default;";
583 try{
584 $res2 = $dbi->prepare("$sql");
585 $res2->execute();
586 }
587 catch(PDOException $e)
588 {
589 die( $sql . "<br>" . $e->getMessage());
590 }
591 }
592 echo "<br><span style=\"color: green;\">-- $campo</span>";
593}
594 $sql="SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '$dbname' and table_collation like '$preset%'";
595 $res = $dbi->prepare("$sql");
596 $res->execute();
597$tab='';
598if(!$agg) $agg=$res->rowCount();
599while(list($nometab)=$res->fetch(PDO::FETCH_NUM)) {
600 $sql="alter table $nometab DEFAULT CHARSET=$cset COLLATE $ccollate";
601 try{
602 $res2 = $dbi->prepare("$sql");
603 $res2->execute();
604 }
605 catch(PDOException $e)
606 {
607 die( $sql . "<br>" . $e->getMessage());
608 }
609 echo "<br><span style=\"color: green;\">- Tabella: $nometab</span>";
610}
611if(!$agg) echo "<br><span style=\"color: green;\">- Nessuna tabella da aggiornare</span>";
612echo "<br><br>";
613?>
Note: See TracBrowser for help on using the repository browser.