![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 0 Dołączył: 1.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Napisałem sobie skrypt, który pobiera mi informacje o filmie z bazy danych IMDB i zastanawiam się jak rozwiązać sprawę z obsadą. Wygląda to tak, że do obsady są 3 wartości: id aktora w bazie IMDB, imię i nazwisko aktora i rola jaką odgrywa w danym filmie i teraz nie wiem, jak to zapisać w bazie danych, znaczy czy zrobić trzy pola i do jednego zapisywać wszystkie id aktorów, oddzielając je np znakiem "|", do drugiej imię i nazwisko oddzielając w ten sam sposób, a do 3 pola odgrywana rolę i znów oddzielając w ten sam sposób, potem po pobraniu dzielić za pomocą explode() i jakoś to wyświetlać, czy może jest jakiś bardziej "cywilizowany" sposób (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Nigdy jeszcze nie miałem tak, żeby zapisywać 3 wartości. Przeważnie jak miałem po dwie to dawałem do jednego pola potem po pobraniu dzieliłem za pomocą explode(), dawałem w fora i jeśli id parzyste to wyświetlaj jedno, a jeśli nie, to drugie, ale to strasznie niewygodne rozwiązanie, a tu natomiast są 3 wartości,, więc nie mogę użyć takiego sposobu i zastanawiam sie w jaki sposób mam to zrobić. Proszę o pomoc, może niektórzy z was mieli podobny problem, jak to zapisać w bazie i później ewentualnie z niej wyciągnąć i wyświetlić w pętli w taki sposób:
Ten post edytował puz219 6.04.2008, 19:09:50 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 32 Dołączył: 3.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że mądrzej jest mieć coś takiego:
Tabela Aktorzy, a w niej: idAktor, nameAktor, rolaAktor, idfilmAktor(opcjonalnie) i teraz dwie opcje... albo w tabeli filmy przechowywać, którzy aktorzy grali w danym filmie albo w idfilm przechowywać w jakich filmach grał dany aktor - pierwsza wersja jest rozsądniejsza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wtedy tam tylko raz uzywasz explode i wciagasz wszystkich aktorów po idAktor (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) z tym że w tabeli Filmy musisz mieć wtedy idAktorzy z wartościami np. 1;4;6;23 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 0 Dołączył: 1.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Myślałem nad tym i wolałbym to zrobić tak, żeby to zapisać do jednego pola bazy danych, np w taki sposób, (oddzielając "|"):
id|nazwisko|rola I czy jeśli tak zrobię to w jaki sposób mogę to później wyciągnąć, tzn. np w formie tabelki, tak, żeby w pierwszej kolumnie wyświetlało id, w drugiej nazwisko, a w trzeciej rolę. Pomóżcie |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 32 Dołączył: 3.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
ale to znaczy, ze chcesz mieć w tablicy jeden rekord ? i w nim cos takiego
ID: 1|2|3|4|5|6 AKTOR: Brad Pit|Tim Robbins|Morgan Freeman|Bob Gunton|William Sadler|Clancy Brown ROLA: cos|ktos|jakos|gdzies|nigdzie.. ? to kompletny bezsens... po co tak pisać, skoro masz całą tabele oraz X rekordów... Do takiego czegoś musisz napisać dobrze explode()" title="Zobacz w manualu PHP" target="_manual i funkcje przypisujące do filmów itd... nie no.. kompletna beznadzieja... I odpowiedź jest - wyciagniesz ;] ale duzo wiecej problemu bedzie z tym niż z wyciaganiem z rekordów (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zrób jak chcesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Podstawy baz danych się kłaniają.
Aktor = [id, imie, nazwisko] Film = [id, tytul] Obsada = [id_filmu, id_aktora] Na takiej strukturze jesteś w stanie zdefinować dowolną obsadę do dowolnego filmu. PS: pomysł z separatorem | jest co najmniej do bani... niewygodny i niezgodny z zasadami normalizacji. |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
jak pisze phppion, dodaj jeszcze "nazwisko postaci w filmie" w tabeli obsada, inne rozwiazania sa chore.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 13:52 |