![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem z stworzeniem-ułożeniem zapytania do bazy mysql (relacje wiele do wielu). Moja baza wygląda tak:
Mianowicie w cms_users są loginy oraz unikalne id usera, w cms_group są nazwy grup oraz unikalne id grupy a w cms_user_has_group znajduje się informacja jaki id usera należy do grupy. Pseudo kod, którym chciałem coś wykombinować
Wygląd przykładowy tabel: cms_group: +--------------+---------+ | id | name | +--------------+---------+ | 1 | Grupa 1 | | 2 | Grupa 2 | | 3 | Grupa 3 | +--------------+---------+ cms_user_has_group: +--------------+---------+---------+ | id | userId | groupId | +--------------+---------+---------+ | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 2 | 3 | +--------------+---------+----------+ Ostatnia tabela ukazje iż: - user o id 1 należy do grupy o id 1; - user o id 1 należy do grupy o id 2; - user p id 2 należy do grupy o id 3; A więc mój problem zaczyna się tutaj. Chcę wypisać wszystkie grupy jakie są w tabeli cms_group ale.. dodatkowo, jeżeli użytkownik należy do jakiejś grupy niech checkbox będzie zaznaczony, oraz abym mógł łatwo pobrać id z formularza, gdyż przyda mi się to do wykonania UPDATE w celu edytowania czy użytkownik należy do danej grupy. ( Użytkownik może należeć do kilku grup, albo nie należeć do żadnej ) Z góry dziękuję za jaką kolwiek pomoc. Pozdrawiam Muzzi Ten post edytował Muzzi 25.07.2012, 08:26:55 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Zrób zwykłego joina i sprawdzaj, czy dla danego rekordu istnieją pola z tabeli grup (jeśli nie przekombinujesz, to zwróci Ci null, ale to pozostawiam Tobie, którego joina użyć
![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
A propo Join'a to wiem. To jest oczywiste, iż mam go użyć, lecz prosiłbym o jaką kolwiek wskazówkę. Niedawno zacząłem zabawę z MYSQL
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Popróbuj, my skomentujemy. To nie jest dział z gotowcami. A wskazówkę dostałeś.
![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
A więc na pierwszy ogień idzie mój pomysł który nie chciał działać, powód? -Błąd.
Wyrzuca mi: #1066 - Not unique table/alias: 'cms_users' |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przecież ci napisano:
nieunikalna nazwa tabeli. Używasz tabeli cms_users dwukrotnie i myślisz ze mysql się sam domyśli kiedy masz na myśli pierwsze odwołanie a kiedy drugie? Nie, nie domyśli się. Musisz użyć aliasów. W manualu mysql masz napisane co i jak jeśli jeszcze nie wiesz. ps: a po co w ogóle dałeś cms_users we FROM? To jest tam totalnie zbędne. Wywal, to nie będziesz miał już błędu co masz. Analogicznie z cms_group -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
No to kolejna próba
![]()
Zwraca: name name NULL Grupa 1 NULL Grupa 2 Ten post edytował Muzzi 25.07.2012, 11:01:30 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
nie:'cms_has_group.userId'
a:`cms_has_group`.`userId` No patrz co piszesz....szczegolnie ze wcześniej używales tego poprawnie :/ -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz, męczyłem się troszkę z tym błędem
![]()
Error: #1054 - Unknown column 'cms_has_group.userId' in 'on clause' |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No ale we FROM dajesz cms_user_has_group a później ni stąd nie zowąd korzystasz z cms_has_group.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A możesz przestać robić na pałę i czekać na poprawki od nas?
Przeczytaj *uważnie* jeszcze raz, co napisałeś i treść błędu, inaczej zamykam temat, bo bezczelnie tracisz nasz czas. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, za swoje głupie błędy, ale dopiero sie uczę, mam nadzieję, iż rozumiecie.
Zwróciło: id name 1 Grupa 1 2 Grupa 1 1 Grupa 2 Działa, zwraca wszystkie grupy i użytkowników którzy należą do niej. Chciałbym tutaj dodać warunek- podaję id ( usera ) i znajduję wszystkie grupy w których należy a jeżeli nie należy to powinno zwrócić NULL. @Edit:
Podane losowe id przy WHERE. Działa dobrze, lecz.. gdy użytkownik nie należy do żadnej grupy nie zwróci nic. Czyli w kodzie PHP pętla while nie wykona się ani raz, przez co nie wypisze grup. Ten post edytował Muzzi 25.07.2012, 11:44:49 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A co ja pisałem o rodzajach joinów?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:33 |