![]() |
![]() ![]() |
![]() |
-adi88- |
![]()
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 |
|
|
![]()
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ść- |
![]()
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... |
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:39 |