Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Dwie tabele
Forum PHP.pl > Forum > Przedszkole
adi88
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
kadlub
http://pl.wikibooks.org/wiki/PHP/Relacje_i_indeksy


wystarczy poszukać
Gość
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...
timon27
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.