Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc w wyswietleniu bazy ...
Forum PHP.pl > Forum > Bazy danych > MySQL
harrypl
Mam tak zapełnioną bazę:

Pierwsza tabela o nazwie "ks" w bazie:

ks(autor , tytul , id_kat);
ks(Adam Kowalski , Kat , 1,2,3);
ks(Bogdan Kraś , Dog , 1,2);

Druga tabela o nazwie "kat" w bazie:

kat(id_kat , nazwa);
kat(1 , Informatyka);
kat(2 , Sport);
kat(3 , Sztuka);

i chcę wyświetlić taki wynik:

+---------------+---------+-----------------------------+
| AUTOR | TYTUŁ | KATEGORIA |
+---------------+---------+-----------------------------+
| Adam Kowalski | Kat | Informatyka, Sport, Sztuka |
| Bogdan Kraś | Dog | Informatyka, Sport |
+---------------+---------+-----------------------------+

Nie wiem ja to zrobić, bo mam w tabeli ks zapisane te liczby za pomocą funkcji implode() [czyli tablicy dwuwymiarowej] i nie wiem teraz jak to odczytać aby wyświetliło mi to tak jak podałem w wyniku ?

Mi tylko wyświetla takie coś:

+---------------+-------+----------------+
| AUTOR | TYTUŁ | KATEGORIA |
+---------------+-------+----------------+
| Adam Kowalski | Kat | Informatyka |
| Bogdan Kraś | Dog | Informatyka |
+---------------+-------+----------------+

Proszę o pomoc ...........
Indeo
Zła organizacja tabel. Jeśli maksymalna liczba kategorii do których może należeć książka jest określona to najprościej byłoby do tabeli 'ks' dodać tyle pól kat1,kat2,kat3 kat(n) ile może być tych kategorii. Jeśli liczba kategorii może być bardzo różna i duża wtedy dostawia sie jeszcze jedna tabelę, która zwiąże dany rekord z tabeli 'ks' z tyloma kategoriami ile trzeba (po jednej kategorii w jednym wierszu tabeli dla danej książki) potem sie to składa do kupy. Trudno Ci będzie złączyć tabele jeśli nie rozdzielisz jednostkowych informacji. Można by próbować zrobić podzapytanie lub złączenie używając akrobacyjnie w klauzuli ON tabela1.pole1 like tabela2.pole2 ale wtedy kategoria o id=1 pasowałaby do stringów '1', '10' , '1,2,3' , '10,20,30' więc to trochę bez sensu.
harrypl
Czyli jak mam to najlepiej zrobić daj przykład konkretny w kodzie smile.gif (twojej wersji)
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.