[MySQL][PHP]Przycisk Sibmit z funkcją edycji danych w tabeli |
[MySQL][PHP]Przycisk Sibmit z funkcją edycji danych w tabeli |
7.07.2019, 14:35:12
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) |
Cześć,
sporządzoną mam tabelę, która pobiera mi tabelę z bazy danych
Jak widać w przykładzie w każdym wierszu dodawany jest przycisk "Zamknij", który ma na celu zmianę Statusu zgłoszenia na rozwiązany. Z kolei takie rozwiązane zgłoszenie jest wyświetlane w innym formularzu przy pomocy zapytania:
Mój problem polega na tym, że jak chcę zamknąć dane zgłoszenie, zamykają mi się wszystkie które się znajdują w bazie. Zrzut ekranu jak to wygląda: https://ifotos.pl/zobacz/Beztytulu_qsnaxaq.png Poniżej zawartość pliku aktualizuj.php, odpowiedzialnego za zmianę danych w tabeli.
Tak myślę, że mój błąd polega na tym, że ta funkcja po prostu zmienia we wszystkich wpisach w tabeli, status na rozwiązany, ponieważ nie mam tak jakby przypisane, że chodzi mi konkretnie o ten wiersz w tabeli... Ale nie wiem jak to zrobić... Ten post edytował tomkot1992 7.07.2019, 14:36:45 |
|
|
7.07.2019, 14:43:59
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Każdy wiersz powinien mieć swoje unikalne id. Wtedy dodajesz where id=liczba i na tym operujesz. Statusu raczej powinny też być liczbowe.
-------------------- |
|
|
7.07.2019, 14:59:03
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) |
Ok,
a jak wtedy przypisać taki unikalne ID do każdego z wierszy ? |
|
|
7.07.2019, 15:06:10
Post
#4
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Można jeszcze chyba limit 1 offset 1, itp., ale co wtedy jak dodasz nowy record do bazy? Wszystko się przesunie. Albo i nie, może to też byłby nawet dobry pomysł, ale raczej tak się nie robi (zła praktyka - bad practice). viking chyba dobrą radę napisał. Dodaj id kolumnę do swojego projektu w bazie.
Ten post edytował Neutral 7.07.2019, 15:20:57 |
|
|
7.07.2019, 15:10:21
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) |
Można jeszcze chyba limit 1 offset 1, itp., ale co wtedy jak dodasz nowy record do bazy? Wszystko się przesunie. Albo i nie, może to też były nawet dobry pomysł, ale raczej tak się nie robi (zła praktyka - bad practice). viking chyba dobrą radę napisał. Dodaj id kolumnę do swojego projektu w bazie.
Hmm.. ale już jedną kolumnę z ID mam.. to czy na pewno jest mi potrzebna druga? Tak wygląda moja baza
Ten post edytował tomkot1992 7.07.2019, 15:12:44 |
|
|
7.07.2019, 15:24:39
Post
#6
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Nie widzę, żebyś miał przy id auto_increment, wiec może napisz tak
i później
Później napisz WHERE `id`=... Id powinno być unikatowe jak sama nazwa wskazuje. Ten post edytował Neutral 7.07.2019, 15:26:17 |
|
|
7.07.2019, 15:30:03
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) |
Aa przepraszam nie zauważyłem, że wkleiłem podstawowy kod a ALTER'Y nie przesłałem.
Kolumna ID była od początku AUTO_INCREMENT
W takim razie do każdego wiersza mam przypisany unikatowy ID. To teraz jak mu to wskazać aby wiedział ,który wiesz chcę zamknąć ? |
|
|
7.07.2019, 15:33:49
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
W poście przesyłasz to id zatem dodajesz tylko warunek jak napisałem. Czy id jest kluczem głównym?
-------------------- |
|
|
7.07.2019, 15:35:06
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.06.2019 Ostrzeżenie: (0%) |
Tak jak podpowiadacie, jeżeli dopiszę warunek WHERE id=liczba <- to muszę wskazać konkretne ID.
W poście przesyłasz to id zatem dodajesz tylko warunek jak napisałem. Czy id jest kluczem głównym? Tak jest kluczem głównym:
Chyba, że ja Was nie rozumiem o co chodzi Ten post edytował tomkot1992 7.07.2019, 15:59:14 |
|
|
7.07.2019, 17:23:17
Post
#10
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Tam przy header, wyrzuć znak "\", napisałem go ponieważ forum mi na encje zamieniało tę linię. W uproszczeniu to napisałem. Gdybyś chciał inne nazwy przycisków, to wtedy musiałbyś chyba zastosować <input type='hidden'.... To możesz wygenerować automatycznie, jeśli chcesz. Ten HTML przemieszany z PHP. Ten post edytował Neutral 7.07.2019, 17:30:46 |
|
|
14.07.2019, 11:06:12
Post
#11
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Tak jak podpowiadacie, jeżeli dopiszę warunek WHERE id=liczba <- to muszę wskazać konkretne ID.
Tak jest kluczem głównym:
Chyba, że ja Was nie rozumiem o co chodzi Musisz dodac do tsbeli auto increment ID. Podczas odczytu tabeli podstawiasz pole ID pod: A) Przycisk z jakims parametrem np update.php?id=$row['id'] pole radio / podobnie j/w C) Pole ukryte hidden j/w Mozna to wykonac na ajaxie i zwrotem (response) i automatyczna zmiana statusu (zmiana wygladu buttona np) bez odswiezenia -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 3.06.2024 - 23:16 |