![]() |
![]() |
-marcinmil- |
![]()
Post
#1
|
Goście ![]() |
Witam. Potrzebuję pomocy. Mam taki projekt na zalicznie. Stworzyc baze danych a w niej tabele studentów. pola: id, imie, nazwisko, grupa , rok, zalicznie. //zrobiłem W tabeli uzupełnic za pomocą polecenia INSERT wszystkie kolumny oprócz ostatniej. //zrobiłem Wyswietlic dane na ekran za pomocą SELECT do kazdego studenta dodac checkbox i submit zaliczam; // zrobiłem za pomoca petli while ($row = mysqli_fetch_array($data)) w tej petli jest tez formularz z input type checkbox name = " check" value = "tak" i przyciskiem submit name submit value zalicz tak ze kazdy student ma swój checkbox i swój submit ( tak ma niby byc) Za pomocą instrukcji UPDATE zaktualizowac pole zaliczenie w tabeli przypisując studentowi z zaliczeniem 1. studenci nie zaliczeni mają wartosc null. I mój problem jest taki, ze jesli umieszcze ten kod co jest ponizej w petli to niezaleznie który chceckbox zaznacze i wcisne submit baza uzupełnia pole zaliczenie wartością '1' dla wszystkich studentow a musi tylko temu jednemu. a jak kod umieszczam pod petlą to nie uzupełnia nic, a jak na początku skryptu to nie zna zmiennej row bo ona pojawia sie dopiero w petli . if(isset ($_POST['submit'])) // gdy nacisnieto przycisk submit { $zm=$row['student_id']; // przypisuje zmiennej wartosc id studenta bo zapytanie sql zapis $row['student_id'] traktuje jako błąd. if(isset($_POST['tak'])) // jesli zaznaczono checkbox to: { $query1 = "UPDATE studenci SET zaliczenie = '1' WHERE student_id = '$zm' "; mysqli_query($dbc, $query1) or die ('Error'); echo '<p>'. $zm .'</p>'; } } Jak to zrobic zeby uzupełniło pole tylko wybranemu studentowi a nie wszystkim moze źle przekazuje ze chceckbox jest check. Przepraszam za błędy dziekuje |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
dodaj np jakies pole hidden ktore bedzie mialo name "student_id" a value - id uzytkownika. I przy wysylaniu daj $zm = $_POST['student_id'];
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, checkboxy jako tablica:
teraz odczytujesz tablice w PHP, bedzie zawierala id studentow przy ktorych zaznaczono checkbox:
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Tak jak kolega wyżej pisze, checkboxy jako tablica. Od siebie tylko dodam, że bardziej elegancko i wydajnie można pojedynczym zapytaniem:
Przed wykonaniem tych zapytań sprawdź czy $_POST['id_studenta'] w ogóle istnieje, bo jeśli użytkownik nie zaznaczył żadnego checkboxa, to $_POST['id_studenta'] NIE będzie zawierała pustej tablicy, ale w ogóle nie będzie zdefiniowana. Poza tym ze względów bezpieczeństwa warto przed wykonaniem zapytań przefiltrować identyfikatory:
Nie jest to najbardziej elegancki sposób. Lepiej wrzucić te przefiltrowane identyfikatory do osobnej tablicy i tę nową tablicę użyć w zapytaniach. |
|
|
-marcinmil- |
![]()
Post
#5
|
Goście ![]() |
Postanowiłem umiescic duzą czesc tego skryptu bo moze mi pomozecie bardziej. Zrobiłem jak podpowiadał mi b4rt3kk ale nic z tego. Chcociaz rzuccie okiem |
|
|
-marcinmil- |
![]()
Post
#6
|
Goście ![]() |
dzieki wszystkim za porady znalazłem błedy i poradziłem juz sobie z tym
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 00:49 |