MOD MySQL est remplacé par PostgreSQL (fini)
[cl7.git] / php / pages / jeux_joues.php
1 <?php # coding: utf-8
2
3 include_once("php/traitement_pre_affichage.php");
4
5 if (!$participant->existe())
6 {
7 echo '<p><em>Remarque : </em>Il faut être inscrit pour pouvoir voter.</p>';
8 }
9
10
11 echo '
12 <form id="formulaireJeuxJoues" method="post" action="index.php?page=jeux_joues">
13 <p><input type="hidden" name="set_jeux_joues" value="1" /></p>
14 <table>
15 <tr>', ($participant->existe() ? '<th></th>' : ''), '<th>Votes</th><th>Jeux</th></tr>';
16
17 # /!\ Attention, requête un poil tricky :
18 # On souhait avoir une liste des jeux joués avec pour chaque tuple :
19 # - l'id du jeu et son nom
20 # - Un tableau des participants ayant voté pour ce jeu
21 # De plus il faut que le résultat soit trié par le nombre de vote
22 $jeux_query = pg_query("
23 SELECT
24 jeux.id,
25 jeux.nom,
26 array_agg(jeux_choisis.participant_id) AS participants,
27 (COUNT(*) + (CASE WHEN bool_and(jeux_choisis.participant_id is null) THEN -1 ELSE 0 END)) as nb_vote
28 FROM
29 jeux
30 LEFT JOIN jeux_choisis ON jeux.id = jeux_choisis.jeu_id
31 GROUP BY jeux.id, jeux.nom
32 ORDER BY nb_vote DESC, jeux.nom
33 ");
34
35 while ($jeu = pg_fetch_object($jeux_query))
36 {
37 $a_vote = FALSE;
38
39 # est-ce que le participant courant à voté pour ce jeu ?
40 if ($participant->existe())
41 {
42 $participants = split(",", ereg_replace("[{-}]", "", $jeu->participants));
43 for($i = 0; $i < count($participants); $i++)
44 $participants[$i] = (int)$participants[$i];
45
46 $a_vote = in_array($participant->info->id, $participants);
47 }
48
49 echo '<tr>',
50 $participant->existe() ? '<td><input type="checkbox" name="votes[]" '. ($a_vote ? 'checked="checked"' : '') .' value="'.$jeu->id.'" /></td>' : '',
51 '<td>' . $jeu->nb_vote . '</td>',
52 '<td ' . ($a_vote ? 'class="aVote" ': '').'>' . traitement_pre_affichage($jeu->nom) . '</td></tr>';
53 }
54
55 echo '
56 </table>';
57
58 if ($participant->existe())
59 echo '
60 <p>Autre : <input type="text" maxlength="50" name="jeu" /></p>
61 <p><input type="submit" value="Voter" /></p>';
62
63 echo '</form>';
64
65 # affichage du nombre de vote restant
66 if ($participant->existe())
67 echo '<p>Nombre de votes restant : ' . $participant->nb_vote_restant() . '</p>';
68
69 ?>