Avatar billede kaosa Nybegynder
11. januar 2005 - 14:22 Der er 5 kommentarer

Linke filer

Jeg har oprettet en ASP fil som er istand til at hente data fra en tabel. Den ser således ud:

<head>
<meta http-equiv="Content-Language" content="da">
</head>

<%
Dim Connection
Dim RS
Dim SQLStmt

'Databaseforbindelse
Set Connection = Server.CreateObject("ADODB.Connection")

Connection.Open "DSN=Yasinstatoil; UID=StatoilWeb;PWD=yasin"

'SQL forespørgsel
SQLStmt = "SELECT Country, StationsNavn "
SQLStmt = SQLStmt &    "FROM Lookup_SSI_Country,Lookup_Station "
SQLStmt = SQLStmt &    "WHERE Lookup_SSI_Country.Country_ID=Lookup_Station.Country_ID "
SQLStmt = SQLStmt & "ORDER BY Country"
                   
'Udfør forespørgsel (RS indeholder nu resultatet)
Response.Write SQLstmt
On Error Resume Next
Set RS = Connection.Execute(SQLStmt)


Response.Write "<table border="""" width="""" id=""table1"">"

'Gennemløb Recordset (RS) med en løkke
Do
  Response.Write "<tr>" 
  'Udskriv værdierne af kolonnerne Country og StationsNavn
  Response.Write "<td>" & RS("Country") & "</td>"
  Response.Write "<td>" & RS("StationsNavn") & "</td>"
 
  'Gå til næste Record i RS
  RS.MoveNext
  'Fortsæt indtil RS er gennemløbet
  Response.Write "</tr>"
 
Loop While Not RS.EOF
Response.Write "</table>"
%>

Når jeg kører denne kode i browseren returnerer den 'landenavne' og 'stationsnavne', som den skal. Herfra vil jeg gerne have at det var muligt at klikke på et tilfældigt station, for dermed at få vist en masse detaljer om den gældende station. Dvs. så der er et nyt side der dukke op i browseren som indeholder oplysninger om en gælden station. Hvordan gør jeg dette?
På forhånd tak!
Avatar billede moocher Nybegynder
11. januar 2005 - 14:32 #1
Først laver du din database større med en kolone til alt hvad der er fra hver station

Jeg regner med at alle stationer har et ID ellers lav det.

Så bruger du (der hvor du udskriver) Response.Write "<td><a href="detaljer.asp?id="&RS("id")&">" & RS("StationsNavn") & "</a></td>"
Avatar billede meltinis Nybegynder
11. januar 2005 - 14:33 #2
Hvis spg er som jeg forstår det så skal du lave et link:
While Not RS.EOF
  Response.Write "<tr>" 
  'Udskriv værdierne af kolonnerne Country og StationsNavn
  Response.Write "<td>" & RS("Country") & "</td>"
  Response.Write "<td><a href="[en side hvor du henter data].asp?station=" & RS("StationsNavn") & ">" & RS("StationsNavn") & "</a></td>"
 
  'Gå til næste Record i RS
  RS.MoveNext
  'Fortsæt indtil RS er gennemløbet
  Response.Write "</tr>"
 
Wend

Du skal nu lave en ny ASP side som henter data ud fra QueryString("station")
Jeg har i øvrigt lavet en While-wend løkke i stedet for din Do-while da denne ikke tester om resultset er tomt fra starten :)
Avatar billede moocher Nybegynder
11. januar 2005 - 14:33 #3
I detaljer.asp aflæser du bare id'et og henter dataerne fra din database hvor id'et passer, sig til hvis du skal have mere hjælp
Avatar billede kaosa Nybegynder
13. januar 2005 - 11:13 #4
Summary.asp:

<%
Dim Connection
Dim RS
Dim SQLStmt

'Databaseforbindelse
Set Connection = Server.CreateObject("ADODB.Connection")

Connection.Open "DSN=Yasinstatoil; UID=StatoilWeb;PWD=yasin"

'SQL forespørgsel
SQLStmt = "SELECT Country, StationsNr "
SQLStmt = SQLStmt &    "FROM Lookup_SSI_Country,Lookup_Station "
SQLStmt = SQLStmt &    "WHERE Lookup_SSI_Country.Country_ID=Lookup_Station.Country_ID "
SQLStmt = SQLStmt & "ORDER BY Country"
                   
'Udfør forespørgsel (RS indeholder nu resultatet)
Response.Write SQLstmt
On Error Resume Next
Set RS = Connection.Execute(SQLStmt)


Response.Write "<table border="""" width="""" id=""table1"">"

'Gennemløb Recordset (RS) med en løkke
Do
  Response.Write "<tr>" 
  'Udskriv værdierne af kolonnerne Country og StationsNavn
  Response.Write "<td>" & RS("Country") & "</td>"
  Response.Write "<td><a href='editto.asp?id=" & RS("StationsNr") & ">" & RS("StationsNr") & "</a></td>"
 
 
  'Gå til næste Record i RS
  RS.MoveNext
  'Fortsæt indtil RS er gennemløbet
  Response.Write "</tr>"
 
Loop While Not RS.EOF
Response.Write "</table>"
%>

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
editto.asp:


<html>

<head>

<title>Ny side 1</title>
</head>

<body>

<%
Dim Connection
Dim RS
Dim SQLStmt

'Databaseforbindelse
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DSN=Yasinstatoil; UID=StatoilWeb;PWD=yasin"

' SQL forespørgsel
SQLStmt = "Select * from Lookup_Station" 
' Udfør forespørgsel (RS indeholder nu resultatet)
Set RS = Connection.Execute(SQLStmt)


Response.Write "<table border="""" width="""" id=""table1"">"
' Gennemløb Recordset (RS) med en løkke
Do
  Response.Write "<tr>"
  ' Udskriv værdien af kolonnen Fornavn
  Response.Write "<td>" & RS("StationsNr") & "</td>"
  Response.Write "<td>" & RS("System") & "</td>"
  Response.Write "<td>" & RS("StationsNavn") & "</td>"
  Response.Write "<td>" & RS("adresse") & "</td>"
  Response.Write "<td>" & RS("PostNr") & "</td>"
  Response.Write "<td>" & RS("TlfNr") & "</td>"
 

 
' Gå til næste Record i RS
  RS.MoveNext
  Response.Write "</tr>"
 
' Fortsæt indtil RS er gennemløbet (EOF = End Of File)
Loop While Not RS.EOF

Response.Write "</table>"

'Luk databaseforbindelsen
Connection.Close
Set Connection=Nothing
%>

<p><a href="summary.asp">Retur til Land og stationsoversigten</a></p>
</body>

</html>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Med den første fil 'summary.asp' kan jeg kalde den anden fil 'editto.asp', men siden 'editto.asp' bliver ikke vist. Hvordan får jeg ordnet dette problem. Og hvordan får jeg lavet en link i 'editto.asp' som kan kalde 'summary.asp'?

På forhånd tak!
Avatar billede meltinis Nybegynder
13. januar 2005 - 13:57 #5
For det første skal din SQL være:
SQLStmt = "Select * from Lookup_Station WHERE stationNr = "&request.QueryString("id")
NB! Hvis ID er et nummer - hvilket jeg regner med...

Kommer der nogen fejl når du klikker på linket?
Mht. tilbage-link så burde din <a href="summary.asp">Retur til Land og stationsoversigten</a> virke!
OG så endnu en gang kan jeg kun anbefalde While-Wend løkker frem for Do-While!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester