Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] checkboxy wysylanie do mysql
Forum PHP.pl > Forum > Przedszkole
andypl
Witam

Robie sobie skrypcik, ktory aktualizuje mi jakies uprawnienia do stronki. Dane sa pobierane z bazy i przekazywane do formularza z checkboxami gdzie moge ustawic wlaczony lub wylaczony i dalej chce przekazac za pomoca tego formularza do bazy by je zaktualizowac.
Tabela jest aktualizowana tzn. dodawany jest jakis dzial_x wiec statyczne wrzucanie do bazy odpada bo jutro moze byc dodatkowo dzial_4 i dzial_5

Ponizej przedstawiam strukturke bazy ... prosilbym o podpowiedz lub uzupelnienie updejta do bazy.
  1. +----------+--------+------+-----+---------+----------------+
  2. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  3. +----------+--------+------+-----+---------+----------------+
  4. | id_u | int(1) | NO | PRI | NULL | AUTO_INCREMENT |
  5. | user_id | int(1) | YES | | NULL | |
  6. | dzial_1 | int(1) | NO | | 0 | |
  7. | dzial_2 | int(1) | NO | | 0 | |
  8. | dzial_3 | int(1) | NO | | 0 | |


tutaj kodzik generujacy formularz:

  1. <?
  2. $zapytanie = "SELECT `id_p`, `opis_p` FROM `tb_pane` WHERE `number_p` < '5' " ;
  3. $wynik = @DBzapytanie($zapytanie);
  4. while ($dzialy = @DBtablicaasoc($wynik)) {
  5. $nr_dzialu = $dzialy['id_p'];
  6. $opis_dzialu = $dzialy['opis_p'];
  7. $zapytanie2 = "SELECT `dzial_".$nr_dzialu."` FROM `tb_uprawnienia` WHERE `user_id` = ".$wybor_switch2." LIMIT 1" ;
  8. $wynik2 = @DBzapytanie($zapytanie2);
  9. while ($row = @DBtablicaarray($wynik2)) {
  10. $cos = $row[0];
  11. ?>
  12. <br/>
  13. <label><?= $opis_dzialu ?>:</label>
  14. <input type="checkbox" name="dzial[<?= $nr_dzialu ?>]" <? if ($cos == '1') { echo "checked="checked"";} ?>/>
  15. <? } } ?>
  16. <br/>
  17. <input type="hidden" name="uprawnienia_user" value="1">
  18. <input type="hidden" name="jaki_user" value="<?= $wybor_switch2; ?>">
  19. <br/>
  20. <div align="right" style="clear:both;">
  21. <input type="submit" name="B1" value=" Zapisz " class="button">
  22. </div>
Koshin
nie zapisuj dostępu do każdego działu w jednym rekordzie, bo za każdym razem, będziesz musiał zmieniać strukturę tabeli smile.gif

Dwa rozwiązania:

1) zapisywać w jednej komórce tabeli dostęp do działów w schemacie dwójkowym smile.gif (wiem, hardcore) 11010101 (1 ma dostęp, 0 nie ma dostępu) dokładasz dział - dokładasz uprawnienie na końcu, usuwasz dział, musisz wtedy rekordy przeskoczyć wszystkie i usunąć z ciągu jeden znak odpowiadający danemu działowi

2)zapisywać każdy dział i każdego użytkownika oddzielnie np.:
tablica:
user,dzial
1,1
1,2
1,4

- dostep usera 1 do działów 1,2 i 4
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.