Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Dwie tabele, relacja jaden do wielu
-adi88-
post 9.12.2011, 12:20:17
Post #1





Goście







Cześć,

mam dwie tabele
artykuly
id
tytul
opis
id_kategorie

kategorie
id
nazwa

Jeden artykuł może być w wielu kategoriach i teraz mam problem - nie wiem jak zrobić żeby pobierając jeden artykuł pobrać nazwy wszystkich kategorii w których występuje.

Proszę o pomoc
Go to the top of the page
+Quote Post
kadlub
post 9.12.2011, 12:29:30
Post #2





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


http://pl.wikibooks.org/wiki/PHP/Relacje_i_indeksy


wystarczy poszukać

Ten post edytował kadlub 9.12.2011, 12:29:55
Go to the top of the page
+Quote Post
-Gość-
post 9.12.2011, 20:35:22
Post #3





Goście







Ale to nie jest to co szukam...


INSERT INTO `artykuly` (`tytul`, `opis`, `id_kategorie`) VALUES
('William', 'Shakespeare', '1,2,3'),
('Henryk', 'Sienkiewicz', '43'),
('Adam', 'Mickiewicz', '1'),
('Eliza', 'Orzeszkowa', '1,3,5'),
('Jan', 'Kowalski', '1');

INSERT INTO `kategorie` (`id`, `nazwa`) VALUES
(1, 'Nowosci'),
(2, 'Polskie'),
(3, 'Polecane'),
(4, 'Hot'),
(5, 'Stare czasy'),
(43, 'Zagraniczne');

i jak zrobić zapytanie żeby zamiast ID id_kategorie wyświetlało nazwy kategorii czyli np:
William | Shakespeare | Nowosci, Polskie, Polecane

Zrobiłem coś takiego:
Cytat
SELECT a.*, GROUP_CONCAT(b.nazwa ORDER BY b.ID separator ', ') as FROM artykuly a, kategorie b WHERE b.id in (a.id_kategorie) group by a.id order by rand()

ale to wyświetla tylko jedną nazwę kategorii...
Go to the top of the page
+Quote Post
timon27
post 10.12.2011, 22:40:01
Post #4





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


Nie próbuj tego na silę zrobić w msql, tylko zrób to w php.
pobierz kategorie artykułu, następnie w php za pomocą explode rozdziel na liczby i wykonaj w pętli zapytania do drugiej tabeli.
Będzie to o wiele prostsze i niewiele dłużej trwające.
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:39