webForumDet fria alternativet

Jag behöver en funktion...

ASP

35 svar · 505 visningar · startad av timedia

Medlem sedan maj 2001420 inlägg
Frågan#1

På min filmsajt listar jag skådisar som har spelat i aktuell film. Jag har ett arkiv med ca. 170 filmtitlar och nu tänker jag göra en funktion; Om skådisen har spelat i en annan film som är recenserad på sajten så ska skådisen visas som en länk till en sida som listar alla filmerna som han har deltagit i. Hur gör jag denna funktion?

------------------
www.moviemix.nu

Medlem sedan dec. 19995 874 inlägg
#2

hur ser din databas ut?

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?

Medlem sedan maj 2001420 inlägg
#3

Innehållet i accessdb:
Id = räknare (prim.nyckel)
Datum = Datum/tid
Titel = Text
Orig_titel = Text
Year = Tal
Land = Text
Regi = Text
Lengd = Tal
Hemsida = Text
Trailer = Text
Bild = Text
Betyg = Tal
Signatur = Text
Seen = Text
Kategori = Text
Votes = Tal
Addvote = Tal
Kopdvd = Text
Fronthead = Text
Koplank = Text
Actors = PM
Rec = PM

Hoppas det var så du ville ha det?

------------------
www.moviemix.nu

Medlem sedan dec. 19995 874 inlägg
#4

jag tycker du skulle behöva normalisera lite.

exempelvis kan du lägga alla aktörer i en egen tabell, sedan knyter du ihop filmerna och aktörerna i en tredje tabell typ

actor movie
1 5
1 6
2 5

detta menar att actor 1 medverkar i två filmer och actor 2 medverkar i en film, där även actor 1 medverkar.
Detta resulterar i att du lätt kan söka upp alla filmer och sedan även filmnamn m.m där en speciell actor är med.

Lycka till!

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?

Medlem sedan maj 2001420 inlägg
#5

Tack Brimba. Jag förstår nu att jag måste lära mig relationsdb. Hade hoppats att det skulle finnas lättare lösningar :l

------------------
www.moviemix.nu

Medlem sedan mars 20015 287 inlägg
#6

Hm, jag har precis samma problem, men funderade på om man inte på något sätt skulle tex ha en tabell för alla skådisar och i ett fält i filmdatabasen lista de skådisar (nummer i andra tabellen) som medverkar.
Tyckte detvrkade smidigt med en tabell mindre, dock inser jag att det kanske är onödigt att behöva plöja igenom hela filmdatabasen/tabellen efter alla skådisar?

timedia: Nu lista du alla dina skådisar (i varje film) i ett pmfält?

Själv la jag in flera fält så man "lätt" kunde separera/söka olika skådisar fast det blev onekligen lite struligt ändå.

------------------
/solbulle
Hemmabio | Spelautomater | The Who

Medlem sedan maj 2001420 inlägg
#7

Nu lista du alla dina skådisar (i varje film) i ett pmfält?

Ja, tyvärr. Visste inte bättre när jag började med sajten :( Nu krävs det nog så mycket jobb att jag får skjuta det på framtiden :(

ha en tabell för alla skådisar och i ett fält i filmdatabasen lista de skådisar (nummer i andra tabellen) som medverkar.

...jag tycker ju detta verkar vettigt också- fattade inte riktigt varför Brimba ville ha en tredje tabell?

------------------
www.moviemix.nu

Medlem sedan mars 20002 836 inlägg
#8

... för annars blir det problem vid tex en sökning på en speciell skådis och vilka filmer han/hon varit med i, har huvudroll, biroll etc.

cya,
PatrikB

------------------
'## -- second place is the first looser -- ##'

Medlem sedan mars 20002 836 inlägg
#9

Skulle nog bygga en tabell struktur typ denna, lite snabb ihopknåpat utan vidare tanke ;o :

tbl_movie_title
---------------
- fld_mt_id Räknare (int autonumber)
- fld_mt_name Text(255)
- fld_mt_desc PM

tbl_actors
----------
- fld_a_id Räknare (int autonumber)
- fld_a_firstname Text(255)
- fld_a_lastname Text(255)
- fld_a_bio PM

tbl_movie
---------
- fld_m_id Räknare (int autonumber)
- fld_m_mtid Tal
- fld_m_aid Tal

Relationer:
-----------
fld_mt_id - 1:N - fld_m_mtid
fld_a_id - 1:N - fld_m_aid

Något sådant

cya,
PatrikB

------------------
'## -- second place is the first looser -- ##'

Medlem sedan dec. 19995 874 inlägg
#10

Jag menade egentligen precis det PatrikB visade, men en tabell hade jag gjort annorlunda...

tbl_movie
---------
- fld_m_mtid Tal (nyckel)
- fld_m_aid Tal (nyckel)

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?

Medlem sedan mars 20002 836 inlägg
#11

... själv har jag en vana att alltid lägga med ett autonumber fält ... man vet aldrig om det kommer till användning vid ett senare tillfälle.

cya,
PatrikB

------------------
'## -- second place is the first looser -- ##'

Medlem sedan mars 20015 287 inlägg
#12

OK, då får man ta och söka en del på relationer...
Antar att man i princip kan lägga alla "personer" i tabellen tbl_actors, även producenter och dyl för det kan väl knappast krångla till det hela.
Hur som helst måste man ju i tbl_movie_title notera vilken "roll" skådisen har. (huvudroll, biroll etc) och då kan man väl lika gärna lägga alla personer i samma tabell?

------------------
/solbulle
Hemmabio | Spelautomater | The Who

Medlem sedan dec. 19995 874 inlägg
#13

Nyckelns uppgift är att se till att varje post i en tabell är unik. Om man har för vana att lägga till räknare och använda de som nycklar, tycker jag man tappar lite av meningen med nycklar.

Det är ju dumt att ha dubletter.

Skulle det sedan visa sig att man behöver räknare, så kan man lägga till det fältet när det behovet uppstår.

Men alla gör som de tycker är bäst :)

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?

Medlem sedan aug. 20012 349 inlägg
#14

Hur som helst måste man ju i tbl_movie_title notera vilken "roll" skådisen har. (huvudroll, biroll etc) och då kan man väl lika gärna lägga alla personer i samma tabell?

Jag skulle skapat en tabell till som heter tex (bättre namn kan ma nju ha)

tbl_PersonDoingInAMovie
id Description
1 huvudroll
2 producent
3 biroll
4 regissör
osv

sen i tbl_movie
lägger du till ett fält till
fld_p_id
på så sätt visar varje rad
vilken film, vilken person samt på vilket sätt han är inblandad i filmen.

[r] fixa stavning

------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.

[Redigerat av mrblonde den 21 nov 2001]

Medlem sedan mars 20015 287 inlägg
#15

Nu väcker vi denna gamla tråd.

För att fatta mig kort, hur gör jag? :x

Om jag utgår från detta:

tbl_movie_title
---------------
- fld_mt_id Räknare (int autonumber)
- fld_mt_name Text(255)
- fld_mt_desc PM

+ diverse faktafält om filmn, ljud, bild mm

tbl_actors
----------
- fld_a_id Räknare (int autonumber)
- fld_a_firstname Text(255)
- fld_a_lastname Text(255)
- fld_a_bio PM

(Ändrar namn typ till tbl_personer)

tbl_movie
---------
- fld_m_id Räknare (int autonumber)
- fld_m_mtid Tal
- fld_m_aid Tal

Sen hänger vi på denna:

tbl_PersonDoingInAMovie
id Description
1 huvudroll
2 producent
3 biroll
4 regissör

Här nu fattar jag inte riktig hur jag syr ihop dessa alla tabeller.

Jag ser sammanhanget med nednstående men fattar inte vad jag gör av det el/och går tillväga:

Relationer:
-----------
fld_mt_id - 1:N - fld_m_mtid
fld_a_id - 1:N - fld_m_aid

Lite hjälp, gärna en vägvisning till något script eller dylikt som använder sig av något liknande.

------------------
/solbulle
Hemmabio | Spelautomater | The Who

[Redigerat av solbulle den 13 dec 2001]

Medlem sedan feb. 20001 590 inlägg
#16

tbl_movie behöver inte räknarfältet, eftersom det är en ren relationstabell.

Plocka ut filmerna med en SQL sats som matchar skådespelar_id i relationstabellen

Skulle gärna skriva SQL satsen direkt, men det verkar som du inte är riktigt färdig med tabellerna med tanke på tbl_PersonDoingInAMovie

(konstigt med engelska tabellnamn och svenska fältnamn?)
/T

------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no

Medlem sedan mars 20015 287 inlägg
#17

Okey... det börjar lossna lite nu.
Ang blandning sv/eng -det har varit många kockar i denna tråd. -Får utsa till namnen till slut.

om jag tittar närmare på mrblondes inlägg ser jag att han la till ett fält:

tbl_movie
---------
- fld_m_id Räknare (int autonumber)
- fld_m_mtid Tal
- fld_m_aid Tal
- fld_p_id

Men om man nu ska använda detta blir det väl en massa upprepningar, iofs bara i denna relationstabell, men det blir väl i princip en kolumn för varje befattningstyp i filmen; producent, huvudroll, biroll mfl fält i tbl_PersonDoingInAMovie?
Men det kanske är ok?

Om jag går vidare på Toonsters inlägg, då får jag väl bara med mig en person/befattning ur tbl_actors? (under namnbyte eftersom den tabellen kan innehålla alla inblandade människor i filmen.)

------------------
/solbulle
Hemmabio | Spelautomater | The Who

Medlem sedan feb. 20001 590 inlägg
#18

Nej, du får med alla personer i en viss film, eller tvärtom. det är det som är meningen med relationstabellen. (som inte ska ha någon räknare...)

/T

------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no

Medlem sedan mars 20015 287 inlägg
#19

Ok... jag sitter och försöker, med varierande framgång.

Ett exempel på en SQL-sats för att få ut informationen skulle onekligen vara till hjälp.

En sak till, hur bör man egentligen namnge sina fält? Ska man ge dom typ kompletta namn som i exemplen i tråden eller vad är bäst?

Själv, ovan som man är har jag världens problem med att hålla isär allt, fast namnen eg är ganska logiska...
------------------
/solbulle
Hemmabio | Spelautomater | The Who

[Redigerat av solbulle den 14 dec 2001]

Medlem sedan dec. 200012 464 inlägg
#20

Det är oklart vad tabellerna heter och vilka fält dom har.

Om du vill få fram all information om ala personer i alla filmer.

select mt.*,p.* 
from  tbl_movie_title  mt ,
      tbl_movie m,
      tbl_person p
where mt.fld_m_id = m.fld_m_id 
  and m.fld_p_id = p.fld_p_id

Om du vill ha en benämning på vad varje person gjorde i en film så får du lägga till ett typfält i tbl_movie.

------------------
essentitia preter non sans multiplicandum

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)