source: trunk/client/modules/Elezioni/confronti.php@ 2

Last change on this file since 2 was 2, checked in by root, 15 years ago

importo il progetto

File size: 14.4 KB
Line 
1<?php
2/************************************************************************/
3/* Eleonline - Raccolta e diffusione dei dati elettorali */
4/* by Roberto Gigli & Luciano Apolito */
5/* http://www.eleonline.it */
6/* info@eleonline.it luciano@aniene.net rgigli@libero.it */
7/************************************************************************/
8/* Modulo confronti */
9/* */
10/************************************************************************/
11/*
121)visualizza l'elenco delle consultazioni nel comune con una check box per la selezione
132)gli id_cons delle consultazioni selezionate vengono inseriti in $_SESSION['confronti][]
143)per ogni consultazione chiede di associare le liste al gruppo1, al gruppo2 o a nessun gruppo
154)per ogni gruppo1 inserisci id_lista in $gruppo1[], così per ogni gruppo2
165)somma i voti delle liste in gruppo1 per ogni consultazione e inserisci in array1, così per gruppo2
176)proponi la scelta della modalita' di visualizzazione: per voti ottenuti, percentuale su voti validi, percentuale su elettori.
18*/
19if (!defined('MODULE_FILE')) {
20 die ("You can't access this file directly...");
21}
22$param=strtolower($_SERVER['REQUEST_METHOD']) == 'get' ? $_GET : $_POST;
23
24if (isset($param['grp1'])) $grp1=addslashes($param['grp1']); else $grp1='';//_GRUPPO1;
25if (isset($param['grp2'])) $grp2=addslashes($param['grp2']); else $grp2='';//_GRUPPO2;
26if (isset($param['grp3'])) $grp3=addslashes($param['grp3']); else $grp3='';
27if (isset($param['pag'])) $pag=intval($param['pag']); else $pag=0;
28if (isset($param['pags'])) $pags=intval($param['pags']); else $pags=0;
29if (isset($param['listecol'])) $listecol=intval($param['listecol']); else $listecol=0;
30
31echo "<table><tr><td align=\"center\">"._CNFR_CONS."</td></tr></table>";
32
33//visualizza le consultazioni tra le quali scegliere quelle da confrontare
34function sceglicons(){
35global $param,$id_cons_gen, $dbi, $prefix, $id_comune;
36$_SESSION['confr']=array();
37$_SESSION['grp1']=array();
38$_SESSION['grp2']=array();
39$_SESSION['grp3']=array();
40$x=1;
41
42while (isset($_SESSION['num_lista'.$x]))
43 unset($_SESSION['num_lista'.$x]);
44/*$x=1;
45while (isset($param['num_lista'.$x])) {
46 if ($param['num_lista'.$x]==$gruppo) array_push($collegate,$_SESSION['num_lista'.$x]);
47 elseif ($param['num_lista'.$x]!=0) array_push($collperd,$_SESSION['num_lista'.$x]);
48 $x++;
49}*/
50$res = mysql_query("SELECT t1.descrizione,t2.id_cons FROM ".$prefix."_ele_consultazione as t1, ".$prefix."_ele_cons_comune as t2, ".$prefix."_ele_tipo as t3 where t1.id_cons_gen=t2.id_cons_gen and t1.tipo_cons=t3.tipo_cons and t3.circo='0' and t3.genere>'2' and t2.id_comune='$id_comune' order by t1.data_fine,t1.descrizione", $dbi);
51if (mysql_num_rows($res)){
52 echo "<form id=\"cons\" action=\"modules.php\">";
53 echo "<table><tr><td>"
54 ."<input type=\"hidden\" name=\"op\" value=\"come\"/><input type=\"hidden\" name=\"info\" value=\"confronti\"/>";
55 echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"/>";
56 echo "<input type=\"hidden\" name=\"id_comune\" value=\"$id_comune\"/>";
57
58 echo "<table><tr>
59 <td>Dai un nome<br/>al il primo gruppo</td><td><input type=\"text\" name=\"grp1\" value=\"\"/></td></tr>
60 <tr><td>Dai un nome<br/>al secondo gruppo</td><td><input type=\"text\" name=\"grp2\" value=\"\"/></td></tr>
61 <tr><td>Se vuoi un raffronto <br/>con il totale degli altri gruppi</td><td><input type=\"checkbox\" name=\"grp3\"/></td></tr>
62 <tr><td align=\"center\" colspan=\"2\"><br/>"._SCELTA_CONS."</td></tr>";
63 $x=1;
64 while (list($descr_cons,$id_cons)= mysql_fetch_row($res)){
65 echo "<tr><td>$descr_cons</td><td><input type=\"checkbox\" name=\"check$x\"/>";
66 echo "<input type=\"hidden\" name=\"cons$x\" value=\"$id_cons\"/>";
67 echo "<input type=\"hidden\" name=\"verifica\" value=\"1\"/></td></tr>";
68 $x++;
69 }
70 echo "<tr><td><input type=\"hidden\" name=\"pags\" value=\"$x\"/></td><td><input type=\"submit\" name=\"invia\" value=\""._OK."\"/></td></tr></table>
71 </td>
72 <td class=\"modulo\"><h2>Help on line</h2><br/>
73 <h3>Esempi di uso</h3><br />
74 <b>Raffronto centrodestra-centrosinistra</b><br/>
75 - Mettere i nomi ai gruppi da assemblare<br/>
76 - Scegliere se confrontarli anche con i restanti gruppi<br />
77 - Scegliere le consultazioni, almeno una, da raffrontare e premere ok<br/>
78 - Scegliere le liste da abbinare ad ogni gruppo<br /><br/>
79 <b>Raffronto andamento per un solo gruppo o lista</b><br />
80 - Immettere solo un nome del gruppo lasciando vuoto l'altro<br />
81 - Scegliere le consultazioni premere ok<br />
82 - Scegliere le liste da abbinare ad ogni gruppo<br /><br/>
83
84
85
86
87
88
89</td></tr></table>
90
91</form>";
92}
93}
94
95//visualizza le liste per consultazione e permette di associarle ai gruppi
96function scegliliste(){
97 global $bgcolor1,$bgcolor2,$param,$id_cons_gen, $dbi, $prefix, $id_comune, $pag, $pags,$id_cons,$grp1,$grp2,$grp3;
98 // ipotesi di campi vuoti
99 if(!$grp1 && !$grp2 && !$grp3){echo "<span class=\"red\">Metti il nome di almeno un gruppo oppure il check al raffronto totale</span>"; include("footer.php"); exit;}
100
101
102
103
104
105 $verifica=0;
106 if (!$pag) //alla prima esecuzione filtra le consultazioni selezionate
107 {
108 $pag=1;
109 $x=1;
110 $y=1;
111 while (isset($param['cons'.$x])) {
112 if($param[('check'.$x)])
113
114 {
115 $_SESSION['confr'][$y]=$param[('cons'.$x)];
116 $y++;
117 $verifica++; // verifica di scelte consultazioni
118 }
119 else $pags--;
120 $x++;
121
122 }
123 if ($verifica<=1){echo "<span class=\"red\">Scegli almeno due consultazioni</span>"; include("footer.php"); exit;} //esce
124 }else{
125 $_SESSION['grp1'][$pag]=array();
126 $_SESSION['grp2'][$pag]=array();
127 $_SESSION['grp3'][$pag]=array();
128 $x=1;
129 while (isset($param['num_lista'.$x])) {
130
131 if ($param['num_lista'.$x]=='grp1') {array_push($_SESSION['grp1'][$pag],$_SESSION['num_lista'.$x]);}
132
133 if ($param['num_lista'.$x]=='grp2') {array_push($_SESSION['grp2'][$pag],$_SESSION['num_lista'.$x]);}
134
135 if ($param['num_lista'.$x]=='grp3') {array_push($_SESSION['grp3'][$pag],$_SESSION['num_lista'.$x]);}
136 unset($_SESSION['num_lista'.$x]);
137
138 $x++;
139 }
140 $pag++;
141 }
142 if($pag>=$pags) return(1); //in $pags il numero delle consultazioni
143 $id_cons2=$_SESSION['confr'][$pag];
144 $res_lis = mysql_query("SELECT t1.descrizione from ".$prefix."_ele_consultazione as t1, ".$prefix."_ele_cons_comune as t2 where t1.id_cons_gen=t2.id_cons_gen and t2.id_cons='$id_cons2'",$dbi);
145 list($descr)=mysql_fetch_row($res_lis);
146# $res_lis = mysql_query("SELECT t1.id_lista,t1.descrizione,t2.descrizione from ".$prefix."_ele_lista as t1, ".$prefix."_ele_gruppo as t2 where t1.id_gruppo=t2.id_gruppo and t1.id_cons='$id_cons2' order by t2.num_gruppo",$dbi);
147 $res_lis = mysql_query("SELECT t1.id_lista,t1.descrizione,t2.descrizione from ".$prefix."_ele_lista as t1 left join ".$prefix."_ele_gruppo as t2 on t1.id_gruppo=t2.id_gruppo where t1.id_cons='$id_cons2' order by t2.num_gruppo",$dbi);
148 $yy=mysql_num_rows($res_lis);
149 if ($yy){
150 echo "<form name=\"liste\" action=\"modules.php\">"
151 ."<input type=\"hidden\" name=\"op\" value=\"come\"/><input type=\"hidden\" name=\"info\" value=\"confronti\">";
152 echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"/>";
153 echo "<input type=\"hidden\" name=\"id_comune\" value=\"$id_comune\"/>";
154 if($grp1)echo "<input type=\"hidden\" name=\"grp1\" value=\"$grp1\"/>";
155 if($grp2)echo "<input type=\"hidden\" name=\"grp2\" value=\"$grp2\"/>";
156 if($grp3)echo "<input type=\"hidden\" name=\"grp3\" value=\"$grp3\"/>";
157 echo "<br/>";
158 echo "<table cellspacing=\"0\" cellpadding=\"2\" border=\"1\"><tr class=\"bggray\"><td bgcolor=\"$bgcolor1\" colspan=\"5\">"._CONSULTAZIONE.": <b>$descr</b><br/>"._SCELTA_LISTE."</td></tr><tr class=\"bggray\"><td bgcolor=\"$bgcolor1\" colspan=\"2\"></td>";
159 if($grp1)echo "<td bgcolor=\"$bgcolor1\"><b>$grp1</b></td>";
160 if($grp2)echo "<td bgcolor=\"$bgcolor1\"><b>$grp2</b></td>";
161 echo "<td bgcolor=\"$bgcolor1\"><b>"._ALTROGRP."</b></td>";
162 echo "</tr>";
163 $z=1;
164 while(list($id_lista,$descr,$gruppo) = mysql_fetch_row($res_lis)) {
165 $_SESSION['num_lista'.$z]=$id_lista;
166 echo "<tr><td>$gruppo</td><td>$descr</td>";
167 if($grp1)echo "<td><input type=\"radio\" name=\"num_lista$z\" value=\"grp1\"/></td>";
168 if($grp2)echo "<td><input type=\"radio\" name=\"num_lista$z\" value=\"grp2\"/></td>";
169 echo "<td><input type=\"radio\" name=\"num_lista$z\" value=\"grp3\" checked=\"checked\"/></td>";
170
171 echo "</tr>";
172 $z++;
173 }
174 echo "<tr><td colspan=\"5\"><input type=\"hidden\" name=\"pag\" value=\"$pag\"/><input type=\"hidden\" name=\"pags\" value=\"$pags\"/>";
175 echo "<input type=\"submit\" name=\"invia\" value=\""._OK."\"/></td></tr></table></form>";
176 }
177 return(0);
178}
179
180// stampa a video i risultati
181function outgraf($ar1,$ar2,$ar3){
182global $pags,$id_comune,$prefix,$dbi,$grp1,$grp2,$grp3;
183
184$riga1="<table border=\"1\"><tr class=\"bggray\"><td></td>";
185$riga5="<tr align=\"center\"><td>"._VOTANTI."</td>";
186foreach($_SESSION['confr'] as $y=>$x){
187 $res= mysql_query("SELECT sum(maschi+femmine) from ".$prefix."_ele_sezioni where id_cons='$x'",$dbi);
188 list($elet)=mysql_fetch_row($res);
189 $res= mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_cons='$x'",$dbi);
190 list($tot[$y])=mysql_fetch_row($res);
191 $res = mysql_query("SELECT t1.descrizione FROM ".$prefix."_ele_consultazione as t1, ".$prefix."_ele_cons_comune as t2 where t1.id_cons_gen=t2.id_cons_gen and t2.id_comune='$id_comune' and t2.id_cons='$x'", $dbi);
192 list($descr)=mysql_fetch_row($res);
193 $riga1.="<td>$descr</td>";
194 $riga5.="<td>".$tot[$y]."<br/>".number_format($tot[$y]*100/$elet)."%</td>";
195 // dati per grafico
196 $descriz[$y]=$descr;
197 $perctot[$y]=number_format($tot[$y]*100/$elet);
198
199 }
200$riga1.="</tr>";
201if($grp1)$riga2="<tr align=\"center\"><td>$grp1</td>";
202if($grp2)$riga3="<tr align=\"center\"><td>$grp2</td>";
203if($grp3)$riga4="<tr align=\"center\"><td>"._ALTROGRP."</td>"; else $riga4='';
204#for ($x=1;$x<=$pags;$x++){
205foreach($_SESSION['confr'] as $x=>$y){
206 $perc1=number_format(($ar1[$x]*100/$tot[$x]),2);
207 $perc2=number_format(($ar2[$x]*100/$tot[$x]),2);
208 $perc3=number_format(($ar3[$x]*100/$tot[$x]),2);
209 $perc4=number_format(($ar1[$x]*100/$tot[$x]),3);
210 $perc5=number_format(($ar2[$x]*100/$tot[$x]),3);
211 $perc6=number_format(($ar3[$x]*100/$tot[$x]),3);
212 if (($perc1+$perc2+$perc3)>(100.00)){
213 if((($perc4*1000)%10)<(($perc5*1000) % 10)) $max=1; else $max=2;
214 if ($max==1) if((($perc4*1000)%10)>(($perc6*1000)%10)) $max=3;
215 elseif((($perc5*1000)%10)>(($perc6*1000)%10)) $max=3;
216 if($max==1)$perc1-=0.01;
217 elseif($max==2)$perc2-=0.01;
218 else $perc3-=0.01;
219 }elseif (($perc4+$perc5+$perc6)<(100.00))
220 {
221 if((($perc4*1000)%10)>(($perc5*1000) % 10)) $max=1; else $max=2;
222 if ($max==1) if((($perc4*1000)%10)<(($perc6*1000)%10)) $max=3;
223 elseif((($perc5*1000)%10)<(($perc6*1000)%10)) $max=3;
224 if($max==1)$perc1+=0.01;
225 elseif($max==2)$perc2+=0.01;
226 else $perc3+=0.01;
227 }
228 if($grp1)$riga2.= "<td>".$ar1[$x]."<br/>$perc1%</td>";
229 if($grp2)$riga3.= "<td>".$ar2[$x]."<br/>$perc2%</td>";
230 if($grp3)$riga4.= "<td>".$ar3[$x]."<br/>$perc3%</td>";
231 // per grafici
232 $percg1[$x]=$perc1;
233 $percg2[$x]=$perc2;
234 $percg3[$x]=$perc3;
235}
236if($grp1)$riga2.="</tr>";if($grp2)$riga3.="</tr>";if($grp3)$riga4.="</tr>";$riga5.="</tr></table>";
237echo $riga1.$riga2.$riga3.$riga4.$riga5;
238
239/* dati da inviare in array al grafico
240$descrizione: consultazione
241$grp1 e grp2: nome dei gruppi
242$ar1 fino a 3 : numero voti gruppi e altri
243percg1 fino a 3 : percentuali gruppi e altri
244$tot : totale voti
245$perctot : percentuale totale voti
246$altro="Altro";
247
248echo "<br/>";
249foreach($_SESSION['confr'] as $x=>$y){
250echo "$descriz[$x]<br/>";
251echo "$grp1 : $ar1[$x] - $percg1[$x]%<br/>";
252echo "$grp2 : $ar2[$x] - $percg2[$x]%<br/>";
253echo "Altri : $ar3[$x] - $percg3[$x]%<br/>";
254echo "Totali: $tot[$x] - $perctot[$x]%<hr>";
255
256
257}
258*/
259// preparazione per grafico
260foreach($ar1 as $val) $ars1[]=$val;
261foreach($ar2 as $val) $ars2[]=$val;
262foreach($ar3 as $val) $ars3[]=$val;
263foreach($percg1 as $val) $per1[]=$val;
264foreach($percg2 as $val) $per2[]=$val;
265foreach($percg3 as $val) $per3[]=$val;
266foreach($descriz as $val) $desc[]=$val;
267
268// includere nel linguaggio
269define("_TITOLOVOTI","Raffronti per voto");
270define("_TITOLOPERC","Raffronti percentuali");
271define("_ALTRO","Altri");
272
273if(!$grp1 && !$grp2)$altro=""._ALL."";
274else $altro=""._ALTRO."";
275
276$titolovoti=urlencode(_TITOLOVOTI);
277$titoloperc=urlencode(_TITOLOPERC);
278$altro=urlencode($altro);
279$desc=serialize($desc);
280//$desc=urlencode($desc);
281
282
283$grp1=urlencode($grp1);
284$grp2=urlencode($grp2);
285$grp3=urlencode($grp3);
286$altro=urlencode($altro);
287// voti
288$ars1=serialize($ars1);
289$ars1=urlencode($ars1);
290$ars2=serialize($ars2);
291$ars2=urlencode($ars2);
292$ars3=serialize($ars3);
293$ars3=urlencode($ars3);
294// percentuali
295$per1=serialize($per1);
296$per1=urlencode($per1);
297$per2=serialize($per2);
298$per2=urlencode($per2);
299$per3=serialize($per3);
300$per3=urlencode($per3);
301
302
303 echo "<table><tr><td>
304 <img src='modules/Elezioni/grafici/raffrontivoto.php?altro=$altro&amp;desc=$desc&amp;grp1=$grp1&amp;grp2=$grp2&amp;grp3=$grp3&amp;ar1=$ars1&amp;ar2=$ars2&amp;ar3=$ars3&amp;tot=$tot&amp;titvoti=$titolovoti' alt=\"Grafico\" /></td></tr></table>";
305
306 echo "<table><tr><td>
307 <img src='modules/Elezioni/grafici/raffrontiperc.php?altro=$altro&amp;desc=$desc&amp;grp1=$grp1&amp;grp2=$grp2&amp;grp3=$grp3&amp;percg1=$per1&amp;percg2=$per2&amp;percg3=$per3&amp;perctot=$perctot&amp;titperc=$titoloperc' alt=\"Grafico\" /></td></tr></table>";
308
309
310}
311
312$zz=0;
313if (!$pags) sceglicons();
314elseif($pag<=$pags) {$zz=scegliliste();
315}
316
317if($zz !=0) {
318 for ($x=1;$x<$pags;$x++){
319 $ar1[$x]=0;
320 $ar2[$x]=0;
321 $ar3[$x]=0;
322 foreach ($_SESSION['grp1'][$x] as $key=>$val){
323 $res= mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_lista='$val'",$dbi);
324 list($voti)=mysql_fetch_row($res);
325 $ar1[$x]+=$voti;
326 }
327 foreach ($_SESSION['grp2'][$x] as $key=>$val){
328 $res= mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_lista='$val'",$dbi);
329 list($voti)=mysql_fetch_row($res);
330 $ar2[$x]+=$voti;
331 }
332 foreach ($_SESSION['grp3'][$x] as $key=>$val){
333 $res= mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_lista='$val'",$dbi);
334 list($voti)=mysql_fetch_row($res);
335 $ar3[$x]+=$voti;
336 }
337 }
338 outgraf($ar1,$ar2,$ar3);
339
340}
341
342?>
Note: See TracBrowser for help on using the repository browser.