Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jedno array dla danego id, połączenie 3 tabel w widoku
MGie
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 5
Dołączył: 29.02.2016

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


Męczę się już z tym jakiś czas i za bardzo nie wiem jak to zrobić w MySQL,
chciałbym połączyć 3 tabele: users, users_in_groups, users_groups,

chciałbym aby return array wyglądał tak:
  1. array (
  2. [0] => array(
  3. 'user_id' => 3,
  4. 'user_name' => 'Jan',
  5. 'user_in_groups' => array(
  6. [0] => array(
  7. 'group_id' => 1,
  8. 'group_name' => 'admin',
  9. )
  10. )
  11. )
  12. )


Mam kod:
  1. CREATE OR REPLACE VIEW view_users_in_groups AS
  2. SELECT u.id AS user_id, u.name AS user_name, u.email AS user_email, ug.id AS group_id, ug.name AS group_name, ug.alias group_alias FROM users u, users_groups ug, users_in_groups uig
  3. WHERE
  4. u.id = uig.user_id
  5. AND
  6. ug.id = uig.group_id;

Zwraca:
  1. array(3) {
  2. [0]=>
  3. object(stdClass)#28 (6) {
  4. ["user_id"]=>
  5. string(1) "5"
  6. ["user_name"]=>
  7. string(6) "Michal"
  8. ["user_email"]=>
  9. string(17) "mail@gmail.com"
  10. ["group_id"]=>
  11. string(1) "1"
  12. ["group_name"]=>
  13. string(5) "admin"
  14. ["group_alias"]=>
  15. string(6) "admins"
  16. }
  17. [1]=>
  18. object(stdClass)#27 (6) {
  19. ["user_id"]=>
  20. string(1) "5"
  21. ["user_name"]=>
  22. string(6) "Michal"
  23. ["user_email"]=>
  24. string(17) "mail@gmail.com"
  25. ["group_id"]=>
  26. string(1) "3"
  27. ["group_name"]=>
  28. string(9) "moderator"
  29. ["group_alias"]=>
  30. string(9) "moderator"
  31. }
  32. [2]=>
  33. object(stdClass)#26 (6) {
  34. ["user_id"]=>
  35. string(1) "5"
  36. ["user_name"]=>
  37. string(6) "Michal"
  38. ["user_email"]=>
  39. string(17) "mail@gmail.com"
  40. ["group_id"]=>
  41. string(1) "4"
  42. ["group_name"]=>
  43. string(7) "writers"
  44. ["group_alias"]=>
  45. string(6) "writer"
  46. }
  47. }



W takim układzie mam utrudniony odbiór danych, nie użyję pętli foreach ( zwróci 3 razy to samo, z innymi grupami ).
Mam jeszcze problem z użytkownikami, którzy nie należą do żadnej z grup, chciałbym mieć ich też w tym widoku ( chyba najlepiej by było, żeby ich user_in_groups był NULL a nie array ).
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.09.2025 - 01:31