query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $election_libelle = $row [0]; $nbcandidat = $row [1]; $election_date = $row [2]; } // Si l'élection est une simulation on le rajoute dans le libellé if (ereg("([A-Za-z]{3})([0-9]{2})-([0-9]{1})C", $election)) { $election_libelle = substr($election_libelle, 0, strlen($election_libelle)-2); $election_libelle .= " 1ère centaine"; } // On récupère le nombre de bureaux total et le nombre de bureaux arrivés $sql = "select etat, bureau from resultat where election = '".$election."' order by bureau"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $bureau_arr = 0; $bureau_tot = 0; while ($row =& $res -> fetchRow ()) { if (!ereg ("nonarrive", $row [0])) $bureau_arr++; $bureau_tot++; } } // Si le dossier "web/res/".$election."/" n'existe pas on le cré if (!file_exists ("../web/res/".$election)) mkdir ("../web/res/".$election); // On écrit le fichier election.inc $fp = fopen ("../web/res/".$election."/election.inc","w"); $contenu = ""; fwrite ($fp, $contenu); fclose ($fp); } /** * Permet de mettre à jour le fichier collectivite.inc du dossier : "web/res/".$election."/" * Variables : * $inscrits * $votants * $nuls * $exprimes * $candidats [1] = array ('photo' => "1.jpg", 'code' => "", 'nom' => "", 'prenom' => "", 'parti' => "", 'voix' => "", 'tx' => ""); * $candidats [2] = array ('photo' => "2.jpg", 'code' => "", 'nom' => "", 'prenom' => "", 'parti' => "", 'voix' => "", 'tx' => ""); * $candidats [...] = array ('photo' => "....jpg", 'code' => "", 'nom' => "", 'prenom' => "", 'parti' => "", 'voix' => "", 'tx' => ""); */ function web_maj_collectivite ($election, &$db) { // On récupère le nombre de candidat de l'élection $sql = "select election_nbcandidat from election where election='".$election."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $nbcandidat = $row [0]; } // On récupère le nombre d'inscrits, de votants, de nuls et d'exprimés dans la table résultat // Et le nombre de voix pour chaque candidat $sql = "select sum(inscrit), sum(votant), sum(exprime), sum(nul), "; for ($i = 1; $i <= $nbcandidat; $i++) if ($i != $nbcandidat) $sql .= "sum(candidat".$i."), "; else $sql .= "sum(candidat".$i.") "; $sql .= "from resultat where election='".$election."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $inscrits = $row [0]; $votants = $row [1]; $exprimes = $row [2]; $nuls = $row [3]; if ($row [2] == 0) $row [2] = 1; for ($i = 1; $i <= $nbcandidat; $i++) $candidats [$i] = array ('photo' => "".$i.".jpg", 'voix' => $row [3+$i], 'tx' => number_format(round ($row [3+$i] * 100 / $row [2], 2),2)."%"); } // On récupère les informations sur le candidat $sql = "select election_candidat_ordre, candidat.candidat, candidat_nom, candidat_prenom, parti from election_candidat inner join candidat on election_candidat.candidat=candidat.candidat where election='".$election."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { while ($row =& $res -> fetchRow ()) { $candidats [$row [0]]['code'] = $row [1]; $candidats [$row [0]]['nom'] = $row [2]; $candidats [$row [0]]['prenom'] = $row [3]; $candidats [$row [0]]['parti'] = $row [4]; } } // Si le dossier "web/res/".$election."/" n'existe pas on le cré if (!file_exists ("../web/res/".$election)) mkdir ("../web/res/".$election); // On écrit le fichier collectivite.inc $fp = fopen ("../web/res/".$election."/collectivite.inc", "w"); $contenu = " $value) $contenu .= "\$candidats [".$key."] = array ( 'photo' => \"".$value ['photo']."\", 'code' => \"".$value ['code']."\", 'nom' => \"".$value ['nom']."\", 'prenom' => \"".$value ['prenom']."\", 'parti' => \"".$value ['parti']."\", 'voix' => \"".$value ['voix']."\", 'tx' => \"".$value ['tx']."\");\n"; $contenu .= "?>"; fwrite ($fp, $contenu); fclose ($fp); } /** * Permet de mettre à jour le fichier participation.inc du dossier : "web/res/".$election."/" * Ne convient pas pour les simulations qui n'ont pas de participations * Variables : * $participations [0] = array ('heure' => "12:00:00", 'votants' => "4720", 'tx' => "13.95"); * $participations [1] = array ('heure' => "14:00:00", 'votants' => "11284", 'tx' => "33.35"); * $participations [...] = array ('heure' => "16:00:00", 'votants' => "16141", 'tx' => "47.7"); */ function web_maj_participation ($election, &$db) { // On récupère le nombre d'inscrits dans la table résultat $sql = "select sum(inscrit) from resultat where election='".$election."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $inscrits = $row [0]; } $inscrits_temp = $inscrits; if ($inscrits == 0) { $inscrits_temp = 1; } // On récupère le nombre de votant pour chaque tranche dans la table participation $sql = "select tranche_heure, total from participation inner join tranche on tranche.tranche = participation.tranche where election='".$election."' and total<>0"; $res = $db -> query ($sql); if (DB :: isError ($res)) die($res -> getMessage ().$sql); else { $k = 0; while ($row =& $res -> fetchRow ()) { $participations [$k] = array ( 'heure' => $row [0], 'votants' => $row [1], 'tx' => number_format (round ($row[1] * 100 / $inscrits_temp, 2), 2)."%"); $k++; } } // On écrit le fichier uniquement si on a des résultats dans la requête if ($k != 0) { // Si le dossier "web/res/".$election."/" n'existe pas on le cré if (!file_exists ("../web/res/".$election)) mkdir ("../web/res/".$election); // On écrit le fichier participation.inc $fp = fopen ("../web/res/".$election."/participation.inc", "w"); $contenu = " $value) $contenu .= "\$participations [".$key."] = array ( 'heure' => \"".$value ['heure']."\", 'votants' => \"".$value ['votants']."\", 'tx' => \"".$value ['tx']."\");\n"; $contenu .= "?>"; fwrite ($fp, $contenu); fclose ($fp); } } /** * Permet de mettre à jour le fichier b."codebureau".html du dossier : "web/res/".$election."/" * Variables : * $bureau * $bureau_libelle * $inscrit * $votant * $nul * $exprime * $candidat [1] = array ('nom' => "", 'prenom' => "", 'voix' => "", 'tx' => ""); * $candidat [2] = array ('nom' => "", 'prenom' => "", 'voix' => "", 'tx' => ""); * $candidat [...] = array ('nom' => "", 'prenom' => "", 'voix' => "", 'tx' => ""); */ function web_maj_b ($election, $bureau, &$db) { // On récupère le libelle du bureau $sql = "select bureau_libelle from bureau where bureau='".$bureau."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $bureau_libelle = $row [0]; } // On récupère le nombre de candidat de l'élection $sql = "select election_nbcandidat from election where election='".$election."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $nbcandidat = $row [0]; } // On récupère le nombre d'inscrits, de votants, de nuls et d'exprimés dans la table résultat // Et le nombre de voix pour chaque candidat $sql = "select inscrit, votant, exprime, nul, "; for ($i = 1; $i <= $nbcandidat; $i++) if ($i != $nbcandidat) $sql .= "candidat".$i.", "; else $sql .= "candidat".$i." "; $sql .= "from resultat where election='".$election."' and bureau='".$bureau."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { $row =& $res -> fetchRow (); $inscrit = $row [0]; $votant = $row [1]; $exprime = $row [2]; $nul = $row [3]; if ($row [2] == 0) $row [2] = 1; for ($i = 1; $i <= $nbcandidat; $i++) $candidat [$i] = array ( 'voix' => $row [3+$i], 'tx' => number_format (round ($row [3+$i] * 100 / $row [2], 2), 2)."%"); } // On récupère les informations sur le candidat $sql = "select election_candidat_ordre, candidat_nom, candidat_prenom from election_candidat inner join candidat on election_candidat.candidat=candidat.candidat where election='".$election."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else { while ($row =& $res -> fetchRow ()) { $candidat [$row [0]]['nom'] = $row [1]; $candidat [$row [0]]['prenom'] = $row [2]; } } // Si le dossier "web/res/".$election."/" n'existe pas on le cré if (!file_exists ("../web/res/".$election)) mkdir ("../web/res/".$election); // On écrit le fichier b."bureau".html $fp = fopen ("../web/res/".$election."/b".$bureau.".html", "w"); $contenu = "\n"; $contenu .= "\n"; $contenu .= $bureau ." - ".$bureau_libelle."\n"; $contenu .= "\n"; $contenu .= "\n"; $contenu .= "
\n"; $contenu .= "Inscrits: "; $contenu .= $inscrit."\n"; $contenu .= "
\n"; $contenu .= "Votants: "; $contenu .= $votant."\n"; $contenu .= "
\n"; $contenu .= "Nuls: "; $contenu .= $nul."\n"; $contenu .= "
\n"; $contenu .= "Exprimés: "; $contenu .= $exprime."\n"; $contenu .= "
\n"; $contenu .= "\n"; $contenu .= "\n"; $contenu .= "\n"; $contenu .= "\n"; $contenu .= "\n"; $contenu .= "\n"; for ($i = 1; $i <= $nbcandidat; $i++) { $contenu .= "\n"; $contenu .= ""; $contenu .= ""; $contenu .= ""; $contenu .= "\n"; } $contenu .= "
\n"; $contenu .= "Candidats\n"; $contenu .= "\n"; $contenu .= "Voix\n"; $contenu .= "\n"; $contenu .= "%\n"; $contenu .= "
\n"; $contenu .= $candidat [$i]['nom']." ".$candidat [$i]['prenom']."\n"; $contenu .= "\n"; $contenu .= $candidat [$i]['voix']."\n"; $contenu .= "\n"; $contenu .= $candidat [$i]['tx']."\n"; $contenu .= "
\n"; fwrite ($fp, $contenu); fclose($fp); } /** * Permet de mettre à jour le fichier election.inc du dossier : "web/res/".$election."/" * Variables : * $bureau [1] = array ('code' => "1",'etat' => "1", 'obj' => "centre", 'x' => "340",'y' => "155"); * $bureau [2] = array ('code' => "2",'etat' => "1", 'obj' => "centre", 'x' => "510",'y' => "50"); * $bureau [...] = array ('code' => "3",'etat' => "0", 'obj' => "centre", 'x' => "340",'y' => "220"); */ function web_maj_bureau ($election, &$db) { // Requête pour la liste des bureaux de l'élection et l'état de ces bureaux $sql = "select etat, bureau.bureau, plans, positionx, positiony from resultat inner join bureau on resultat.bureau = bureau.bureau where election = '".$election."' order by bureau"; $res = $db -> query ($sql); if (DB :: isError ($res)) die ($res -> getMessage ().$sql); else while ($row =& $res -> fetchRow ()) { if (!ereg ("nonarrive", $row [0])) $b [$row[1]]['etat'] = 1; else $b [$row[1]]['etat'] = 0; $b [$row[1]]['obj'] = $row[2]; $b [$row[1]]['positionx'] = $row[3]; $b [$row[1]]['positiony'] = $row[4]; } // Si le dossier "web/res/".$election."/" n'existe pas on le cré if (!file_exists ("../web/res/".$election)) mkdir ("../web/res/".$election); // On écrit le fichier bureau.inc $fp = fopen ("../web/res/".$election."/bureau.inc", "w"); $contenu = " $value) { $contenu .= "\$bureau [".$key."] = array ('code' => \"".$key."\",'etat' => \"".$value ['etat']."\", 'obj' => \"".$value ['obj']."\", 'positionx' => \"".$value ['positionx']."\",'positiony' => \"".$value ['positiony']."\");\n"; } $contenu .= "?>"; fwrite ($fp, $contenu); fclose ($fp); } /** * Permet de mettre à jour les 4 fichiers web du dossier : "web/res/".$election."/" * Variables : * election.inc * bureau.inc * participation.inc * collectivite.inc */ function web_maj ($election, &$db) { web_maj_bureau ($election, $db); web_maj_participation ($election, $db); web_maj_collectivite ($election, $db); web_maj_election ($election, $db); } ?>