Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Mysql] Pobranie danych z 2 tabel, łaczenie w tabele...
slash^
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Nie wiem jak nazwać to co chcę zrobic, dlatego nie wiem pod jakim pojęciem tego szukać.

Mam dwie tabele np.

tabela firma
id nazwa
1 - coca-cola
2 - pepsi-cola

tabela branze
firma branza
1 3
1 2
1 5
2 2

Tabeli firma nie bedę objaśniać, natomiast tabela branże odnosi się do tabeli 1. Kazda firma może być numerowo przypisana do wielu branż (pole firma to odnosnik do id w tabeli firma, a branza to id z jeszcze innej tabeli ale to juz mniej istotne).

Jak widac na powyzszym przykladzie firma id 1 ma przypisane 3 branze.

Jak powinno wyglądać zapytanie aby dane wyświetlić w np. takiej formie:

rekord:
array ( id = 1, nazwa = coca-cola, branze = array(3,2,5) )
lub cos podobnego?

nie wiem jak to ugryzc?


--------------------
d(^^)b
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


  1. SELECT id, nazwa, branza FROM firma
  2. LEFT JOIN branze ON firma = id

No, a później to już operacje na tablicach.
Go to the top of the page
+Quote Post
slash^
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Nie dokładnie o to mi chodzi. Poradziłem sobie (choć połowicznie z GROUP_CONCAT), jeżeli ktoś przedstawi lepszy plan, chętnie zmienię smile.gif


--------------------
d(^^)b
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
[...] jeżeli ktoś przedstawi lepszy plan, chętnie zmienię
1. GROUP_CONCAT zda się jedynie w przypadku gdy będziesz chciał pobrać ID branż. Jeżeli będziesz chciał pobrać firmy oraz id i nazwę branży do jakiej przynależą to rozwiązanie będzie do niczego.
2. Jak już @Damonsson zauważył trzeba zrobić po prostu zwykłego JOINa, a następnie bawić się (dosyć prosto) w operacje z tablicami.
3. Oszczędź sobie masy czasu i skorzystaj z gotowego ORM-a (np. Doctrine), żeby nie bawić się każdorazowo w masochistyczne przetwarzanie wyników zwróconych przez PDO.
Go to the top of the page
+Quote Post
kallosz
post
Post #5





Grupa: Zarejestrowani
Postów: 272
Pomógł: 19
Dołączył: 29.07.2006

Ostrzeżenie: (10%)
X----


Cytat(Crozin @ 7.03.2013, 15:18:46 ) *
3. Oszczędź sobie masy czasu i skorzystaj z gotowego ORM-a (np. Doctrine), żeby nie bawić się każdorazowo w masochistyczne przetwarzanie wyników zwróconych przez PDO.

ORM nie zawsze jest wart zachodu zwłaszcza że to ciężkie kombajny.


--------------------
Pomogłem ?? Kliknij pomógł :) || kallosz.pl
-----------------------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 16:28