1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| <html>
<head>
<title>SGDF</title>
</head>
<body>
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('scout', $base) ;
//LISTE DES NOMS
$sql5 = 'SELECT scout.matricule, scout.nom, mutuelle.mutuelle FROM scout LEFT JOIN mutuelle ON scout.matricule = mutuelle.matricule ORDER by nom ';
$req_nom = mysql_query($sql5) or die('Erreur SQL !<br />'.$sql5.'<br />'.mysql_error());
// LISTE DES DATES
$sql3 = 'SELECT presence.date FROM presence GROUP BY presence.date';
$req_date = mysql_query($sql3) or die('Erreur SQL !<br />'.$sql3.'<br />'.mysql_error());
// OPERATION PAR DATE: présences et totaux
$totaux=array();
$presences=array();
while($data_date = mysql_fetch_array($req_date)) {
$sql4='SELECT mutuelle.mutuelle, Count(mutuelle.mutuelle) AS CompteDemutuelle, presence.date FROM (mutuelle INNER JOIN scout ON mutuelle.matricule = scout.matricule) INNER JOIN presence ON scout.matricule = presence.matricule WHERE presence.presence=1 AND date=" '.$data_date['date'].'" GROUP BY mutuelle.mutuelle, presence.date order by presence.date';
$req_totaux = mysql_query($sql4) or die('Erreur SQL !<br />'.$sql4.'<br />'.mysql_error());
$sql8 = 'SELECT presence.presence, scout.nom FROM scout LEFT JOIN presence ON scout.matricule = presence.matricule WHERE date=" '.$data_date['date'].'" ';
$req_presence = mysql_query($sql8) or die('Erreur SQL !<br />'.$sql8.'<br />'.mysql_error());
while ($data_totaux = mysql_fetch_array($req_totaux)) {
//on remplit un tableau qui contient uniquement les informations qu'on va manipuler, c'est plus pratique
$totaux[$data_date['date']][$data_totaux['mutuelle']] = $data_totaux['CompteDemutuelle'];
}
$presences[$data_date['date']]=array();
while ($data_presence = mysql_fetch_array($req_presence )) {
$presences[$data_date['date']][$data_presence['nom']] = $data_presence['presence'];
}
}
?>
<!-- entete du tableau -->
<table border=1>
<tr>
<th>Nom</th>
<th>Mutuelle</th>
<?php
while($data_date = mysql_fetch_array($req_date)) {
echo "<th>".$data_date['date']."</th>";
}?>
</tr>
<!-- une ligne = une personne -->
<?php
while( $data_nom = mysql_fetch_array($req_nom) ) {?>
<tr>
<td><?php echo $data_nom ['nom'] ?></td>
<td><?php echo $data_nom ['mutuelle'] ?></td>
<?php
// LISTE DES DATES (SI je remets pas la requête, je n'ai pas d'affichage à chaque ligne)
$sql3 = 'SELECT presence.date FROM presence GROUP BY presence.date';
$req_date = mysql_query($sql3) or die('Erreur SQL !<br />'.$sql3.'<br />'.mysql_error());
while($data_date = mysql_fetch_array($req_date)) {
//LA JE VOUDRAIS pour l'intersection matricule-date si présent case à cocher = checked
$sql2 = 'SELECT presence.presence FROM scout LEFT JOIN presence ON scout.matricule = presence.matricule WHERE presence.date=" '.$data_date['date'].'" AND presence.matricule='.$data_nom ['matricule'].' Group By nom ';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());
// on va scanner tous les tuples un par un
$data2 = ($data = mysql_fetch_array($req2));
?>
<td align=center><div>
<?php
// echo $data2['presence'];
?>
<input type="checkbox" name="tranche5" accesskey="7" tabindex="7" <?php if ($data2['presence']=="1"){?>checked="checked">
<?php
}
?>
</div>
</td>
<?php
} }
?>
</tr>
<tr><th></th>
<th>Totaux</th>
<?php
while($data_date = mysql_fetch_array($req_date)) { ?>
<td>
<? foreach($totaux[$data_date['date']] as $mutuelle => $count_value) {
echo $mutuelle.": ".$count_value;
}?>
</td><?php
}?>
</tr>
</table>
</body>
</html> |
Partager