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:
foreach ($allGroups as $group) { foreach ($userGroups as $userGroup) { if ($userGroup->group_name == $group->group_name) { } else { } } } }
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.