création dynamique d'un tableau
Posté : 11 sept. 2007, 14:32
Bonjour tout le monde,
me revoilà avec un autre petit problème :
j'essaie de générer un calendrier dans un tableau, en fonction du mois et de l'année choisis. Les jours sont sur une ligne, chacun dans une case, ensuite sur les lignes suivantes sont affichés les enregistrements correspondants aux jours, chaque ligne représentant une periode.
Pour le calendrier, c'est bon, sur la première ligne les jours s'affichent correctement. Mon souci est de faire correspondre les évenements selon la période et le jour.
Pour être plus clair, voici mon code :
Le problème c'est que l'enregistrement concerné est toujours le même. Donc si "n" est le nombre de jours, j'ai n fois l'affichage de la même date ( echo $date_req;)
Voilà, je pense qu'il y a un problème dans la fin de mon script. Je n'ai pas implémenté les 2e et 3e lignes, ce sera pareil, seule une condition changera.
Merci de vos conseils zavisés
me revoilà avec un autre petit problème :
j'essaie de générer un calendrier dans un tableau, en fonction du mois et de l'année choisis. Les jours sont sur une ligne, chacun dans une case, ensuite sur les lignes suivantes sont affichés les enregistrements correspondants aux jours, chaque ligne représentant une periode.
Pour le calendrier, c'est bon, sur la première ligne les jours s'affichent correctement. Mon souci est de faire correspondre les évenements selon la période et le jour.
Pour être plus clair, voici mon code :
<?php
session_start();
require ("_cnn/_cnn.php");
// requete dans la base
$id_med = $_SESSION['id_med'];
$req_evnm = "SELECT * FROM evenement WHERE medecin='$id_med'";
$rs_evnm = mysql_query($req_evnm) or die(mysql_error());
$row_req_evnm = mysql_fetch_assoc($rs_evnm);
$totalRows_req_evnm = mysql_num_rows($rs_evnm);
// calendrier
$date=date('D/d/m/Y');
list($dcourt,$day, $month, $year) = explode("/", $date);
if (isset($_POST['valider'])){
if (isset($_POST['mois'])) {
$date=date('D/d/m/Y');
list($dcourt,$day, $month, $year) = explode("/", $date);
$month = $_POST['mois'];
if (isset($_POST['annee'])) {
if ($_POST['annee'] <> $year) {
$year_choisi = $_POST['annee'];
$annee = $year_choisi;
}
else {
$year = $_POST['annee'];
$annee = $year;
}
}
}
else {
$date=date('D/d/m/Y');
list($dcourt,$day, $month, $year) = explode("/", $date);
}
// début tableau
echo "<table width=\"95%\" border=\"1\">";
echo "<tr>";
echo "<td> </td>";
// début calendrier
$joursem = array('dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam');
$mois=array('','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
// nombre de jours du mois
$nombreDeJours = date("t",mktime(0,0,0,$month +1,0,$annee));
// initialisation du compteur
$i=1;
//$month_t=intval(date("n"));
$month_t=$mois[$month];
// affichage du mois par son nom
echo "<p>Planning du mois de ".$month_t." ".$annee." du Dr ".$_SESSION['nom']."</p>";
// début d'entrée des dates.
while ($i<=$nombreDeJours){
// calcul du timestamp
$timestamp = mktime (0, 0, 0, $month, $i, $annee);
$l=$year."-".$month."-".$i;
list($a, $m, $d) = sscanf($l, "%d-%d-%d"); //%d pour récupérer des entiers
// jour en français
$vrai_jour = $joursem[date("w",$timestamp)];
// Gestion du style
if (($vrai_jour == "sam") || ($vrai_jour == "dim")) {
$style = "red";
}
else {
$style = "normal";
}
// affichage
echo "<td align=\"center\"><span class=\"".$style."\">".$vrai_jour." ".$i."</span></td>";
$i=$i+1;
}
//fermeture de la ligne
echo "</tr>";
##############################################################
// Pour la periode 1
$i = 1;
echo "<tr>";
echo "<td align=\"center\">8h30 - 13h30</td>";
$date_req = $annee."-".$month."-".$i;
while ($i<=$nombreDeJours) {
do {
if (($row_req_evnm['periode'] === "8h30 - 13h30") && ($row_req_evnm['date'] === $annee."-".$month."-".$i)){
// affichage
echo $date_req;
echo "<td align=\"center\">".$row_req_evnm['type']."</td>";
$i=$i+1;
}
else {
echo "<td align=\"center\"> - </td>";
$i=$i+1;
}
} while($row_req_evnm = mysql_fetch_object($rs_evnm));
}
?>
L'affichage de la 2e ligne du tableau commence aux ###Le problème c'est que l'enregistrement concerné est toujours le même. Donc si "n" est le nombre de jours, j'ai n fois l'affichage de la même date ( echo $date_req;)
Voilà, je pense qu'il y a un problème dans la fin de mon script. Je n'ai pas implémenté les 2e et 3e lignes, ce sera pareil, seule une condition changera.
Merci de vos conseils zavisés