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 .= "Candidats\n"; $contenu .= " | \n"; $contenu .= "\n"; $contenu .= "Voix\n"; $contenu .= " | \n"; $contenu .= "\n"; $contenu .= "%\n"; $contenu .= " | \n"; $contenu .= "
\n"; $contenu .= $candidat [$i]['nom']." ".$candidat [$i]['prenom']."\n"; $contenu .= " | "; $contenu .= "\n"; $contenu .= $candidat [$i]['voix']."\n"; $contenu .= " | "; $contenu .= "\n"; $contenu .= $candidat [$i]['tx']."\n"; $contenu .= " | "; $contenu .= "