Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> UPDATE zaznaczonych pól z użyciem pętli?
szymek001
post 14.07.2012, 18:41:30
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


Witam!
Mam formularz na którym mam x pól w tablicy. Z biegiem czasu ilość wierszy będzie się zwiększać. Po wysłaniu formularza chciałbym żeby zaznaczone pola (checkbox) zostały zaktualizowane. W jaki sposób mógłbym zrobić to w pętli?
Pozdrawiam
Go to the top of the page
+Quote Post
franki01
post 15.07.2012, 01:14:22
Post #2





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Pokaż co już masz.

Jeżeli pola są tablicą, to musi to tablica uporządkowana, typu:
  1. <input type="checkbox" name="tablica[$zmiennaID]" />


Jeżeli to już załatwisz, pętla:
  1. $checked = array();
  2. foreach((array)$_POST['tablica'] as $k => $v)
  3. {
  4. $checked[] = $k;
  5. }
  6.  
  7. // w tablicy $checked masz zaznaczone pola, możesz teraz np. użyć to przy UPDATE używając implode(), np:
  8. $db->query("UPDATE `tabela` SET `polezaznaczone`=0"); // ustawia wszystkie na odznaczone
  9. if($checked) $db->query("UPDATE `tabela` SET `polezaznaczone`=1 WHERE `id` IN ('".implode("','", $checked)."')"); // ustawia wybrane na zaznaczone, warunek if konieczny, żeby zapytanie nie wyrzciło błędu


Ten post edytował franki01 15.07.2012, 01:14:32
Go to the top of the page
+Quote Post
SmokAnalog
post 15.07.2012, 08:03:35
Post #3





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ładniej na wartościach niż na kluczach:
  1. <input type="checkbox" name="tablica[]" value="$zmiennaID">

  1. if(isset($_POST['tablica'])) { // sprawdzamy, bo w przypadku braku zaznaczenia jakiegokolwiek checkboxa nie będzie zmiennej $_POST['tablica'] w ogóle
  2. foreach($_POST['tablica'] as $id) { // usunąłem rzutowanie na tablicę, jest niepotrzebne
  3. $checked[] = $id;
  4. }
  5. }
Go to the top of the page
+Quote Post
szymek001
post 15.07.2012, 10:52:38
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (10%)
X----


ok, ale co jeśli pola mają różne zawartości?
próbowałem z:
  1. <input type="checkbox" name="$id" value="$nowa_wartosc">



na początku próbowałem przesłać tablicę:

Kod
id_kategorii  | stara wartość | nowa wartość
--------------------------------------------
1             | 0             | 1
3             | 0             | 4
4             | 1             | 3
5             | 0             | 0
7             | 0             | 0
9             | 1             | 1

i wtedy zaktualizować tylko te ID których stara wartość różni się od nowej - to chyba jednak jest o wiele trudniejsze..
Jeśli stara wartość jest różna od nowej - wtedy chcę ją zaktualizować zapisując do bazy nową wartość zamiast starej

Ten post edytował szymek001 15.07.2012, 10:53:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 11:17