Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Kategorie
Forum PHP.pl > Forum > Przedszkole
Anonymous
Witam,

Problem przedstawie w poniższym przykładzie.
Powiedzmy, że chcę stworzyć stronę z informacjami na temat miast z całego świata. Natomiast każde miasto będzie przypożądkowane do odpowiednich kategorii. Wszystkie dane będą wczytywane z bazy danych MySql. Jeżeli (w bazie danych) do kolumny "miasto" wpiszę "Paryż", to do kolumny "kategoria" wpiszę "Europa", "Francja, "stolica" itp.
W jaki sposób powinny być wpisane kategorie do jednego pola tabeli? Po znaku "," po spacji, czy w jaki inny sposób?
I najważniejsze: w jaki sposób lub jakiej użyć funkcji, aby każdy wyraz w tym przypadku "Europa", "Francja" i "stolica" był uznawany jako osobny wyraz, a nie jako łańcuch ("Europa, Francja, stolica"). Przykładowo aby, utworzyć 3 odnośniki do tych 3 kategorii.

Opis trochę chaotyczny, ale myślę, że po dokładnym przeczytaniu wiadomo co mam na myśli.
Ucieszę się z każdej pomocy, mogą być przedstawione różne rozwiązania. Z góry dziękuję smile.gif
piotrooo89
ja bym to widział tak:

tabela miasto:
id_miasta
id_kontynent
nazwa
stolica

tabela kontynent
id_kontynent
nazwa

i teraz będziesz w każdym rekordzie łączył daną stolicę z danym kontynentem. masz również osobne pola związane z kontynentem, nazwą miasta i stolicą.
ja to tak zrozumiałem nie wiem czy dokładnie o to chodziło
Anonymous
To byłoby praktyczne rozwiązanie w przypadku gdyby były tylko dane: stolica, miasto i kontynent.

Przedstawię to jednak na innym przykładzie

Przykładowo w portalu, w którym można dodawać filmy. Można również ustalać kategorie, które reprezentuje film i tak np dla wstawionego filmu, który przedstawia wypadki rajdów samochodowych, dodający może ustalić, że film będzie wyświetlany i przydzielony w kategorii "auta" "wypadki" "rajdy" "sporty ekstremalne" "ciekawe". Autor filmu mógł posłużyć się swoją pomysłowością i dodać dowolny typ kategorii np "sexy". Myślę, że każda z kategorii nie będzie wstawiana do osobnego pola gdyż do każdej z tych kategorii musiałaby w bazie danych istnieć osobna kolumna. Tak więc wszystkie kategorie będą wpisane do jednego pola. Po wyświetleniu tego pola będzie tekst: "auta wypadki rajdy sporty ekstremalne ciekawe". W jaki sposób ustalić, że tutaj chodzi własnie o różne kategorie a nie o jeden ciąg bezsensownych znaków? Czy istnieje jakaś funkcja, która np każdy wyraz z jednego pola może wczytać z osobna?
piotrooo89
w takim razie robisz inaczej. tworzysz sobie pomocniczą tabele do obsłużenia relacji 1-wielu.

np:
filmy:
id_filmy
nazwa_filmu

kategoria:
id_kategori
nazwa_kategori

filmkategoria:
id_filmu
id_kategori

i łączysz np:
filmy:
id_filmu | nazwa_filmu
1 | Wypadek

kategoria:
id_kategori | nazwa_kategori
1 | wypadki
2 | auta
3 | masakra

filmkategoria:
id_filmu | id_kategori
1 | 1
1 | 2
1 | 3

aha i nalezy pamiętać aby ustawić primary key dla id_filmu oraz id_kategori. ja bym tak to widział
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.