![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 1 Dołączył: 25.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Rekordy wyświetlam w pętli z bazy danych: (IMG:http://ganski.eu/gr.jpg) I załóżmy, że chcemy zaktualizować dane w bazie, więc pewnie trzeba to zrobić w pętli. I tutaj mam problem:
Jak zaktualizować te dane w bazie ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@Niktoś: Zapis:
jest niepoprawny, ale tylko z punktu widzenia specyfikacji (X)HTML. W PHP kluczem jest zawsze indeks w tablicy $_POST, a wartością wartość elementu z tablicy $_POST o wspomnianym indeksie. To nie jest błąd pod względem obslugi po stronie PHP. No i nadal nie będzie działać. @max_mcee: Najpierw kod:
W pętli while generujesz wiele elementów o nazwie id (name="id"), a po zatwierdzeniu formularza wysyłany jest identyfikator tylko jednego, ostatniego z tych elementów. Dzieje się tak właśnie dlatego, że elementy mają taką samą nazwę. Podobnie jest w przypadku pętli for. W momencie, gdy chcesz edytować wiele wierszy w tabeli musisz posłużyć się nazwami "tablicowymi", tj. takimi, które po zatwierdzeniu formularza przesyłają w $_POST tablice. Wyglądałoby to tak:
Przesłane w ten sposób dane odbierasz w taki sposób:
Pozostaje jeszcze kwestia optymalności skryptu. Niestety wykonywanie UPDATE-ów w pętli nie jest optymalnym rozwiązaniem, lepiej posłużyć się tutaj zapytaniem MULTI-INSERT z opcją ON DUPLICATE KEY UPDATE. Ale o tym może później, jak już ogarniesz powyższy kod. Ten post edytował mortus 1.04.2012, 17:27:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 20:11 |