From 79a4823726634484c22082e8977b744f19a5509b Mon Sep 17 00:00:00 2001 From: Curry141 <135717077+Daniongithub@users.noreply.github.com> Date: Sat, 27 Sep 2025 18:06:46 +0200 Subject: [PATCH] Fixing mobile view and improving some menus. --- htdocs/admin/subjects.php | 42 ++++++++++++++- htdocs/css/timetable.css | 109 ++++++++++++++++++++++++++++---------- htdocs/laboratori.php | 28 ++++++++-- htdocs/studenti.php | 31 +++++++++-- 4 files changed, 173 insertions(+), 37 deletions(-) diff --git a/htdocs/admin/subjects.php b/htdocs/admin/subjects.php index a7bd79b..eaa20f5 100644 --- a/htdocs/admin/subjects.php +++ b/htdocs/admin/subjects.php @@ -47,7 +47,44 @@ if (isset($_GET['delete'])) { + real_escape_string($_POST['name']); + $teacher = $conn->real_escape_string($_POST['teacher']); + $room = $conn->real_escape_string($_POST['room']); + $conn->query("UPDATE subjects + SET name='$name', teacher='$teacher', room='$room' + WHERE id=$id"); +} +// 2. Mostrare il form se edit richiesto +if(isset($_GET['edit'])){ + $id = intval($_GET['edit']); + $res = $conn->query("SELECT * FROM subjects WHERE id=$id"); + if($res->num_rows > 0){ + $subject = $res->fetch_assoc(); + ?> +

Modifica materia

+
+ + + +
+ + +
+ + +
+ + +
+ @@ -64,7 +101,10 @@ if (isset($_GET['delete'])) { - + "; } ?> diff --git a/htdocs/css/timetable.css b/htdocs/css/timetable.css index e23a6b5..9107b6f 100644 --- a/htdocs/css/timetable.css +++ b/htdocs/css/timetable.css @@ -106,62 +106,115 @@ td:hover { td { padding-left: 50%; } } */ + +/* --- tuoi stili desktop (questi restano uguali) --- */ +table { + border-collapse: collapse; + width: 100%; + max-width: 1000px; + margin: 0 auto; + background: #fff; + border-radius: 10px; + overflow: hidden; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +th, td { + border: 1px solid #ccc; + text-align: center; + padding: 10px; + vertical-align: top; +} + +th { + background-color: #e0e0e0; + font-weight: bold; +} + +td { + transition: background-color 0.2s; +} + +td:hover { + background-color: #f7f7f7; +} + +.subject { + font-weight: bold; + color: #1f618d; +} + +.teacher { + font-size: 0.9em; + color: #2c3e50; +} + +.room { + font-size: 0.8em; + color: #666; +} + +/* --- qui sostituisci con la versione migliorata --- */ @media (max-width: 768px) { - table, thead, tbody, th, td, tr { - display: block; - width: 100%; + table { + box-shadow: none; + border-radius: 0; } tr { - margin-bottom: 15px; - padding: 0; - border-bottom: 2px solid #ddd; - } - - th { - display: none; + margin-bottom: 20px; + background: #fff; + border-radius: 8px; + box-shadow: 0 2px 6px rgba(0,0,0,0.08); + overflow: hidden; + padding: 10px; } td { - position: relative; - padding-left: 50%; - text-align: left; + padding: 8px 8px 8px 50%; border: none; border-bottom: 1px solid #eee; - min-height: 50px; /* ensures consistent vertical spacing */ - box-sizing: border-box; + font-size: 0.9em; } td::before { position: absolute; top: 10px; left: 10px; - width: 40%; - font-weight: bold; - white-space: nowrap; + color: #1f618d; + font-size: 0.85em; + text-transform: uppercase; + letter-spacing: 0.5px; content: attr(data-label); } - /* make content stack nicely */ - td > .subject, - td > .teacher, + td > .subject { + font-weight: 600; + font-size: 1em; + margin-bottom: 2px; + } + + td > .teacher { + font-size: 0.85em; + color: #555; + } + td > .room { - display: block; - margin: 2px 0; + font-size: 0.75em; + color: #888; } td:last-child { - border-bottom: 0; + border-bottom: none; } } -/* Extra small screens */ @media (max-width: 480px) { td { - padding-left: 55%; + padding-left: 45%; } td::before { - width: 45%; + width: 40%; + font-size: 0.8em; } } - diff --git a/htdocs/laboratori.php b/htdocs/laboratori.php index ff064e5..20690c6 100644 --- a/htdocs/laboratori.php +++ b/htdocs/laboratori.php @@ -60,11 +60,31 @@ if ($res->num_rows === 0) { WHERE subjects.room='". $conn->real_escape_string($room) ."' AND timetable.day='$d' AND timetable.hour=$hnum "); - if($row = $q->fetch_assoc()){ + + if($q->num_rows > 0){ + $subject = null; + $entries = []; + + while($row = $q->fetch_assoc()){ + // salvo materia (prendo la prima, di solito è la stessa per tutti) + if($subject === null) { + $subject = $row['subject_name']; + } + // accumulo classi + docente + $entries[] = $row['class_name'] . " (" . $row['teacher'] . ")"; + } + + // unisci le classi con " e " se sono 2, altrimenti virgole + "e" finale + if(count($entries) > 1){ + $last = array_pop($entries); + $entries_list = implode(", ", $entries) . " e " . $last; + } else { + $entries_list = $entries[0]; + } + echo ""; } else { echo ""; diff --git a/htdocs/studenti.php b/htdocs/studenti.php index 41baed3..8515ad5 100644 --- a/htdocs/studenti.php +++ b/htdocs/studenti.php @@ -54,10 +54,33 @@ if ($res->num_rows === 0) { FROM timetable LEFT JOIN subjects ON timetable.subject_id = subjects.id WHERE class_id=$class_id AND day='$d' AND hour=$hnum"); - if($row = $q->fetch_assoc()){ - echo ""; + + if($q->num_rows > 0){ + $row = $q->fetch_assoc(); + $subject = $row['name']; + $room = $row['room']; + + // metto il primo docente + $teachers = [$row['teacher']]; + + // aggiungo eventuali altri docenti + while($row = $q->fetch_assoc()){ + $teachers[] = $row['teacher']; + } + + // se più docenti -> unisci con virgola e "e" finale + if(count($teachers) > 1){ + $last = array_pop($teachers); + $teachers_list = implode(", ", $teachers) . " e " . $last; + } else { + $teachers_list = $teachers[0]; + } + + echo ""; } else { echo ""; } -- 2.39.5
ID{$row['name']} {$row['teacher']} {$row['room']}Elimina + Modifica | + Elimina +
-
{$row['subject_name']}
-
{$row['teacher']}
-
{$row['class_name']}
+
$subject
+
$entries_list
{$row['name']}
-
{$row['teacher']}
-
{$row['room']}
+
$subject
+
$teachers_list
+
$room
+