Chciałbym żeby można było edytować wartości ocen w tabeli wyświetlającej oceny wszystkich uczniów danej klasy .
klasa.php
<table width="100%" align="center" border="1" bordercolor="#d5d5d5" cellpadding="0" cellspacing="0"> <tr> <?php if ($_SESSION['nauczyciel'] = false) { } require_once "connect.php"; $polaczenie = mysqli_connect($db_host, $db_user, $db_password, $db_name); mysqli_query($polaczenie, "SET CHARSET utf8"); mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); mysqli_select_db($polaczenie, $database); $class = $_SESSION['class'] ; $rezultat = mysqli_query($polaczenie, ("SELECT uczniowie.id, uczniowie.klasa, uczniowie.nr, oceny.id_ucznia, oceny.polski, oceny.matematyka, oceny.niemiecki, oceny.angielski, oceny.wf, oceny.informatyka, oceny.fizyka, oceny.biologia, oceny.fizyka, oceny.biologia, oceny.historia, oceny.religia, oceny.technika, oceny.chemia, oceny.geografia FROM oceny, uczniowie WHERE uczniowie.id = oceny.id_ucznia AND uczniowie.klasa = '$class' ORDER BY uczniowie.nr ASC")); $ile = mysqli_num_rows($rezultat); if ($ile>=1) { echo<<<END <td width="50" align="center" bgcolor="e5e5e5">Nr</td> <td width="100" align="center" bgcolor="e5e5e5">Polski</td> <td width="100" align="center" bgcolor="e5e5e5">Matematyka</td> <td width="100" align="center" bgcolor="e5e5e5">Angielski</td> <td width="100" align="center" bgcolor="e5e5e5">Niemiecki</td> <td width="100" align="center" bgcolor="e5e5e5">WF</td> <td width="100" align="center" bgcolor="e5e5e5">Informatyka</td> <td width="100" align="center" bgcolor="e5e5e5">Fizyka</td> <td width="100" align="center" bgcolor="e5e5e5">Biologia</td> <td width="100" align="center" bgcolor="e5e5e5">Historia</td> <td width="100" align="center" bgcolor="e5e5e5">Religia</td> <td width="100" align="center" bgcolor="e5e5e5">Technika</td> <td width="100" align="center" bgcolor="e5e5e5">Chemia</td> <td width="100" align="center" bgcolor="e5e5e5">Geografia</td> </tr><tr > END; } for ($i = 1; $i <= $ile; $i++) { $row = mysqli_fetch_assoc($rezultat); $a1 = $row['nr']; $a2 = $row['polski']; $a3 = $row['matematyka']; $a4 = $row['angielski']; $a5 = $row['niemiecki']; $a6 = $row['wf']; $a7 = $row['informatyka']; $a8 = $row['fizyka']; $a9 = $row['biologia']; $a10 = $row['historia']; $a11 = $row['religia']; $a12 = $row['technika']; $a13 = $row['chemia']; $a14 = $row['geografia']; echo<<<END <form action="edytuj.php" name="edytuj" method="post"> <td width="10" align="center">$a1</td> <td width="100" align="center"><input type="text" name="$a2" value="$a2"></td> <td width="100" align="center"><input type="text" name="$a3" value="$a3"></td> <td width="100" align="center"><input type="text" name="$a4" value="$a4"></td> <td width="100" align="center"><input type="text" name="$a5" value="$a5"></td> <td width="100" align="center"><input type="text" name="$a6" value="$a6"></td> <td width="100" align="center"><input type="text" name="$a7" value="$a7"></td> <td width="100" align="center"><input type="text" name="$a8" value="$a8"></td> <td width="100" align="center"><input type="text" name="$a9" value="$a9"></td> <td width="100" align="center"><input type="text" name="$a10" value="$a10"></td> <td width="100" align="center"><input type="text" name="$a11" value="$a11"></td> <td width="100" align="center"><input type="text" name="$a12" value="$a12"></td> <td width="100" align="center"><input type="text" name="$a13" value="$a13"></td> <td width="100" align="center"><input type="text" name="$a14" value="$a14"></td> </tr> <tr> </form> END; } echo '<form action="edytuj.php" name="edytuj" method="post"> <input type="submit" name"edytuj" method="post"></form>' ; $polaczenie->close(); ?> </tr></table>
Tabela wyświetla się prawidłowo. Wysyłam wartości do pliku edytuj.php ale to nie działa . Zaznaczam że chciałbym aby można było edytować oceny różnych uczniów z różnych przedmiotów na raz
edytuj.php
<?php require_once "connect.php"; $polaczenie = mysqli_connect($db_user, $db_password, $db_name, $db_host); mysqli_select_db($polaczenie, $database); ///połączenie z bazą $a1 = $_POST['$a1']; $a2 = $_POST['$a2']; $a3 = $_POST['$a3']; $a4 = $_POST['$a4']; $a5 = $_POST['$a5']; $a6 = $_POST['$a6']; $a7 = $_POST['$a7']; $a8 = $_POST['$a8']; $a9 = $_POST['$a9']; $a10 = $_POST['$a10']; $a11 = $_POST['$a11']; ///zmienne z klasa.php $a12 = $_POST['$a12']; $a13 = $_POST['$a13']; $a14 = $_POST['$a14']; $rezultat = mysqli_query($polacznie, ("UPDATE oceny SET oceny.polski = '$a2', oceny.matematyka = '$a3', oceny.angielski = '$a4', oceny.niemiecki = '$a5', oceny.wf = '$a6', oceny.informatyka = '$a7', oceny.fizyka = '$a8', oceny.biologia = '$a9', oceny.historia = '$a10', oceny.religia = '$a11', oceny.technika = '$a12', oceny.chemia = '$a13', oceny.geografia = '$a14' WHERE id_ucznia = $a1 ")); $polaczenie->close; ?>
budowa bazy danych :
oceny
CREATE TABLE `oceny` ( `id_ucznia` int(11) NOT NULL, `polski` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `matematyka` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `angielski` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `niemiecki` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `wf` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `informatyka` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `fizyka` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `biologia` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `historia` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `religia` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `technika` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `chemia` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL, `geografia` varchar(30) COLLATE utf8mb4_polish_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_polish_ci;
uczniowie
CREATE TABLE `uczniowie` ( `id` int(11) NOT NULL, `user` varchar(30) CHARACTER SET latin1 NOT NULL, `pass` varchar(30) CHARACTER SET latin1 NOT NULL, `nr` tinyint(4) NOT NULL, `klasa` varchar(30) CHARACTER SET latin1 NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_polish_ci;
Zastanwiam się nad użyciem tablicy asocjacyjnej ale nie bardzo wiem jakby miała wyglądać :/