![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zakładając taką sytuację:
Mamy grupę użytkowników, gdzie każdy z nich może należeć do jakieś grupy lub kilku grup. Podczas jego edycji chcemy, aby w polu typu select pojawiły się wszystkie grupy, a te, do których należy będą posiadały atrybut "selected" z wartością "true". Oczywiście użytkowników oraz grupy trzymamy w osobnych tabelkach w bazie danych. Pierwsze co mi przyszło na myśl, to: 1. Pobranie wszystkich grup z bazy danych. 2. Następnie pobieramy grupy, do których użytkownik należy. 3. I teraz za pomocą 2 pętli przelatujemy przez wszystkie grupy oraz grupy użytkownika porównując je ze sobą. Jeżeli będą takie same, to pokaż option z odpowiednim atrybutem. Kod:
Niestety nie działa to jak trzeba. Pola, do których należy użytkownik są zaznaczone, więc jest ok, ale zamiast np. 5 grup, które mam w bazie pokazuje się ich znacznie więcej (powtarzają się) i nie mam pojęcia dlaczego. Mam nadzieję, że choć trochę mi pomożecie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak już tak chcesz mieć, to musisz zmienić pętle, w drugiej musisz sprawdzać czy należy do grupy i zaznaczyć opcję
Ale moim zdaniem można z dużym prawdopodobieństwem zrobić to jednym zapytaniem, nie wiadomo jakie są tabele i jak nazywają się pola w bazie, więc przyjąłem jakieś nazwy
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za zainteresowanie z Twojej strony.
Jak już tak chcesz mieć, to musisz zmienić pętle, w drugiej musisz sprawdzać czy należy do grupy i zaznaczyć opcję Zamieniłem drugą pętlę na pętle for:
Niestety nadal nie działa to prawidłowo. Każdą grupę wypisuje mi po 3 razy, ale grupy użytkownika są prawidłowo zaznaczone. Cytat Ale moim zdaniem można z dużym prawdopodobieństwem zrobić to jednym zapytaniem, nie wiadomo jakie są tabele i jak nazywają się pola w bazie, więc przyjąłem jakieś nazwy
Posiadam 3 tabele: użytkownicy, grupy oraz grupy_użytkowników, gdzie ostatnia z nich posiada klucze obce pierwszych dwóch tabel. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie mam pojęcia dlaczego, ale nie działa to nadal prawidłowo, jednak bardzo dziękuję, bo rozjaśniło mi to sprawę. Do tego poniższego kodu przed zamknięciem pętli foreach dodałem poniższą linijkę i wszystko działa prawidłowo.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:55 |