par
duckmysick » 26 mars 2021, 20:25
Bonjour à tous j'ai vraiment besoin d'aide je galère pas mal et m'excuse si je suis dans la mauvaise section.
Alors en gros je voudrais afficher un emploi du temps comme celui-ci :

sans l'heure affiché sur les cours mais je voudrais afficher la date du jour avec le jour.
Pour le moment voici ce que j'ai rédigé
Code : Tout sélectionner
$bdd->exec("CREATE TABLE addtable (
id INTEGER PRIMARY KEY AUTOINCREMENT,
dpt varchar(250) NOT NULL,
cours varchar(250) NOT NULL,
matiere varchar(250) NOT NULL,
salle varchar(250) NOT NULL,
heure_debut varchar(250) NOT NULL,
heure_fin varchar(250) NOT NULL,
date DATE);");
$bdd->exec("INSERT INTO addtable (id, dpt, cours, matiere, salle, heure_debut, heure_fin, date) VALUES (47, 'Informatique', 'TP', 'Programmation web 1', 'G310', '8:00', '9:00', '20-01-2021'),(48, 'Mathématiques', 'TD', 'Mathématiques 1', 'P14', '10:00', '12:00 ', '23-01-2021'),(50, 'Sciences de la vie et de la Terre', 'CM', 'Sciences de la vie et de la terre 1', 'S25', '13:00', '14:00', '09-09-2021'),(51, 'Physique-Chimie', 'TP', 'Programmation web 1', 'G110', '14:00', '15:00', '18-09-2021'),
(52, 'Informatique', 'TD', 'Algorithme et programmation 1', 'D101', '15:00', '17:00', '20-09-2021'),
(53, 'Mathématiques', 'CM', 'Mathématiques 2', 'S19','8:00', '10:30', '01-09-2021');");
Code : Tout sélectionner
$query = ("SELECT * FROM addtable ");
$res = $bdd->query($query);
$jours = array(null, "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi");
echo "<div class='container'><table width='' class='table table-bordered' style='text-align:center;' border='1' >
<tr><th></th>";
for($x = 1; $x < 6; $x++){
echo "<th>".$jours[$x]."</th>";
}
echo "</tr>";
for ($heure = 8; $heure <= 18; $heure++) {
echo "<tr>";
$heure_aff = $heure;
if(strlen($heure_aff) <= 2) {
echo "<td style=\"width:3%; vertical-align:top; text-align:right; background:#CCCCCC; font-weight: bold; \">";
echo $heure_aff;
echo "h00";
echo "</td>";
}
for($d = 0; $d < 5; $d++){
$date_num = date("d-m-Y", mktime(0, 0, 0, 1, 20+$d, 2021));
echo "<td style=\"padding:10px 5px 10px 5px; border:1px solid #999999;\">";
$date_lecon = $heure.":00 ".$date_num;
while($row = $res->fetch()){
if($date_lecon == $row['heure_debut']." ".$row['date']){
$rdv = $row['cours']."<br>".$row['matiere']."<br>".$row['salle'];
echo $rdv;
}
}
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
la sortie acutelle:
Mais tout s'affiche dans la première cellule, peu importe le code ça ne prend pas en compte le if ou je compare la date de la case avec celui de ma table alors que pourtant si je echo $date_lecon juste avant le while toutes les cases sont bien rempli avec par exemple: "8:00 2401-2021" juste en dessous "9:00 24-01-2021" (sans guillemets) et ainsi de suite jusqu'au vendredi derniere cellule guillements.
Merci d'avance et par pitié aidez-moi !
Bonjour à tous j'ai vraiment besoin d'aide je galère pas mal et m'excuse si je suis dans la mauvaise section.
Alors en gros je voudrais afficher un emploi du temps comme celui-ci :
[img]https://i.stack.imgur.com/4jZEa.png[/img] sans l'heure affiché sur les cours mais je voudrais afficher la date du jour avec le jour.
Pour le moment voici ce que j'ai rédigé [code]$bdd->exec("CREATE TABLE addtable (
id INTEGER PRIMARY KEY AUTOINCREMENT,
dpt varchar(250) NOT NULL,
cours varchar(250) NOT NULL,
matiere varchar(250) NOT NULL,
salle varchar(250) NOT NULL,
heure_debut varchar(250) NOT NULL,
heure_fin varchar(250) NOT NULL,
date DATE);");
$bdd->exec("INSERT INTO addtable (id, dpt, cours, matiere, salle, heure_debut, heure_fin, date) VALUES (47, 'Informatique', 'TP', 'Programmation web 1', 'G310', '8:00', '9:00', '20-01-2021'),(48, 'Mathématiques', 'TD', 'Mathématiques 1', 'P14', '10:00', '12:00 ', '23-01-2021'),(50, 'Sciences de la vie et de la Terre', 'CM', 'Sciences de la vie et de la terre 1', 'S25', '13:00', '14:00', '09-09-2021'),(51, 'Physique-Chimie', 'TP', 'Programmation web 1', 'G110', '14:00', '15:00', '18-09-2021'),
(52, 'Informatique', 'TD', 'Algorithme et programmation 1', 'D101', '15:00', '17:00', '20-09-2021'),
(53, 'Mathématiques', 'CM', 'Mathématiques 2', 'S19','8:00', '10:30', '01-09-2021');");
[/code]
[code]$query = ("SELECT * FROM addtable ");
$res = $bdd->query($query);
$jours = array(null, "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi");
echo "<div class='container'><table width='' class='table table-bordered' style='text-align:center;' border='1' >
<tr><th></th>";
for($x = 1; $x < 6; $x++){
echo "<th>".$jours[$x]."</th>";
}
echo "</tr>";
for ($heure = 8; $heure <= 18; $heure++) {
echo "<tr>";
$heure_aff = $heure;
if(strlen($heure_aff) <= 2) {
echo "<td style=\"width:3%; vertical-align:top; text-align:right; background:#CCCCCC; font-weight: bold; \">";
echo $heure_aff;
echo "h00";
echo "</td>";
}
for($d = 0; $d < 5; $d++){
$date_num = date("d-m-Y", mktime(0, 0, 0, 1, 20+$d, 2021));
echo "<td style=\"padding:10px 5px 10px 5px; border:1px solid #999999;\">";
$date_lecon = $heure.":00 ".$date_num;
while($row = $res->fetch()){
if($date_lecon == $row['heure_debut']." ".$row['date']){
$rdv = $row['cours']."<br>".$row['matiere']."<br>".$row['salle'];
echo $rdv;
}
}
echo "</td>";
}
echo "</tr>";
}
echo "</table>";[/code]
la sortie acutelle:
[img]https://i.stack.imgur.com/tefYT.png[/img]
Mais tout s'affiche dans la première cellule, peu importe le code ça ne prend pas en compte le if ou je compare la date de la case avec celui de ma table alors que pourtant si je echo $date_lecon juste avant le while toutes les cases sont bien rempli avec par exemple: "8:00 2401-2021" juste en dessous "9:00 24-01-2021" (sans guillemets) et ainsi de suite jusqu'au vendredi derniere cellule guillements.
Merci d'avance et par pitié aidez-moi !