webForumDet fria alternativet

Patrik B, eller emission släng en titt om ni har tid..

ASP

7 svar · 236 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Hej om någon har tid att läsa igenom detta och se vad som är korkat gjort vore det supersnällt...tacksamhets skulld....=)När ni har tid...Eller någon annan som är klippa på databaser å dylikt får gärna kika..tacksam för all hjälp

Jag har 4:a tabeller

FILM
film_langd - längd på film
film_res - pm, rescension
fiml_insp - inspelnings år
film_regiid - regissörs id
film_bild - bild
film_namn - namnet på filmen (primär nyckel)
film_filmid - räknare 
film_filmid - räknare
REGI
regi_fodd - årtal 
regi_hist - bakgrund
regi_bild - bild
regi_namn - namn på regisör
regi_regiid - räknare (primär nyckel)
SKADIS
skadis_skadisid - namnet (primär nyckel)
skadis_fodd - årtal
skadis_hist - bakgrund
skadis_bild - bild
SLINK
Slink_namn - Namnet på skådisen
Slink_id - räknare (primär nyckel)
Slink_filmid - vilket film 
Slink_filmnamn - vad skådisen heter i filmen

Det var tabellerna...Här kommer sidorna

INDEX.ASP
<%@ LANGUAGE=VBScript %>
<%
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/filmer.mdb")
Connect.Open DSNtemp
SQLStmt = "SELECT * FROM FILM ORDER BY FILM_NAMN"
Set RS = Connect.Execute(SQLStmt)
%>
<b>Filmer</b><br>
<% Do until RS.EOF %> 
<a href="film.asp?id=<%=RS("film_filmid")%>"><%=RS("film_namn")%></a><br>
<%RS.MoveNext
Loop
RS.Close
Connect.Close
%>

FILM.ASP
<%@ LANGUAGE=VBScript %>
<%
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/filmer.mdb")
Connect.Open DSNtemp
SQLStmt = "SELECT f.film_filmid, f.film_langd, f.film_namn, f.film_res, f.film_insp, f.film_regiid, f.film_bild, r.regi_regiid, r.regi_fodd, s.slink_namn, s.slink_filmnamn, s.slink_id, s.slink_filmid FROM FILM f, REGI r, SLINK s WHERE f.film_filmid = " & Request.Querystring("id") & " AND r.regi_namn = f.film_regiid AND s.slink_filmid=f.film_namn"
Set RS = Connect.Execute(SQLStmt)
%>
<b>Film</b><br>

<%=RS("film_namn")%><br>
Längd: <%=RS("film_langd")%><br>
<a href="regi.asp?id=<%=RS("regi_regiid")%>"><%=RS("film_regiid")%></a><br>
Inspelnings år: <%=RS("film_insp")%><br><br>
Rescension: <br><%=RS("film_res")%>

<br><br>Skådisar:<br>
<% Do Until RS.EOF %>
<%=RS("slink_filmnamn")%>:<a href="skadis.asp?id=<%=RS("slink_namn")%>"><%=RS("slink_namn")%></a><br>
<% 
RS.MoveNext
Loop
RS.Close
%>

REGI.ASP
<%@ LANGUAGE=VBScript %>

<%

Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/filmer.mdb")
Connect.Open DSNtemp
SQLStmt = "SELECT f.film_filmid, f.film_namn, f.film_regiid,  r.regi_namn, r.regi_hist, r.regi_regiid, r.regi_fodd FROM FILM f, REGI r WHERE r.regi_regiid = " & Request.Querystring("id") & " AND r.regi_namn = f.film_regiid"
Set RS = Connect.Execute(SQLStmt)
%>
<b>Regi</b><br>

<%=RS("regi_namn")%><br>
Född:<%=RS("regi_fodd")%><br>
Vem är :<%=RS("regi_hist")%><br>

<br>
Andra filmer regiserade av <%=RS("regi_namn")%>:<br>
<% Do Until RS.EOF %>
<a href="film.asp?id=<%=RS("film_filmid")%>"><%=RS("film_namn")%></a><br>
<% 
RS.MoveNext
Loop
RS.Close
%>

SKADIS.ASP
<%@ LANGUAGE=VBScript %>

<%

Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db/filmer.mdb")
Connect.Open DSNtemp
SQLStmt = "SELECT s.skadis_skadisid, s.skadis_fodd, s.skadis_hist, s.skadis_bild, f.film_filmid, f.film_namn, sl.slink_namn, sl.slink_filmid, sl.slink_filmnamn FROM FILM f, SKADIS s, SLINK sl WHERE s.skadis_skadisid = '" & Request.Querystring("id") & "' AND sl.slink_namn = '" & Request.Querystring("id") & "' AND f.film_namn = sl.slink_filmid" 
Set RS = Connect.Execute(SQLStmt)
%>

<%=RS("skadis_skadisid")%><br>
<%=RS("skadis_fodd")%><br>
<%=RS("skadis_hist")%><br>

Filmer medverkande

<br>
<% Do Until RS.EOF %>
<a href="film.asp?id=<%=RS("film_filmid")%>"><%=RS("slink_filmid")%></a><br>
<% 
RS.MoveNext
Loop
RS.Close
%>

Mycket kod,men det fungerar bra, vad är nackdelen med att löst det (utan arays som du skrev om patrik?)...Är det korkad layout på databasen, skådis namnet finns ju med på 2 ställen likaså filmnamnet..

MYCKET TACKSAM FÖR MINST KOLL!

Medlem sedan dec. 19996 522 inlägg
#2

Problemet blir ju om det inte finns någon räknas upp i tabellen SLINK i tabellen SKADIS, då hittar han det ju inte..ska man lägga in en if sats måntro ???

Medlem sedan dec. 19996 522 inlägg
#3

månjja fjåågoj nu i böjan kanske. Är det korkat att ha med så långa select sattser som jag har...tar det mycket mycket mer tid att ladda sidorn då ?

Medlem sedan dec. 19996 522 inlägg
#4

ingen som har tid att kolla vad som är kasst med denna tabell och lösning ?

Medlem sedan dec. 19996 721 inlägg
#5

Inget större fel, men i de tre undre skripten gör du en sökning som plockar ut t.ex. filmnamnet i varje rad, trots att det bara används/listas överst, en gång.
Det är alltid svårt att analysera vad som är bäst, men rent generellt innebär detta mer jobb för databasen än om du skulle söka ut "engångsinformationen" separat, och "listinformationen" därefter. En annan variant är att man skickar med namnet etc. direkt i querystringen, så slipper du sökningen. Inte lika tjusigt, men snällt och fint.

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan dec. 19996 522 inlägg
#6

tack så mycket för hjälpen ! exakt vad menar du, förstod inte riktigt..är ny på sånna här select sattser..

Medlem sedan dec. 19996 721 inlägg
#7

Vilken del ska jag förklara?

Medlem sedan dec. 19996 522 inlägg
#8

de tre undre skripten gör du en sökning som plockar ut t.ex. filmnamnet i varje rad, trots att det bara används/listas överst, en gång.

Tack på förhand....

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