Avatar billede meyer Nybegynder
03. april 2002 - 08:38 Der er 16 kommentarer og
1 løsning

Hjæææælp - refresh!!

Hvorfor virker denne her ikke??

ID = request.Querystring("ID")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open db

If ID = "" Then
Sql = "Select * from xxx"
Set RS =  myconn.Execute(Sql)
else
Sql = "Select * from xxx WHERE ID = "& ID &""
Set RS =  myconn.Execute(Sql)
END IF
IF ID = RS("ID") THEN
RS.MoveNext
End If
%>
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="10;URL=http://www.xxxxxx.dk/xxxxx.asp?ID=<%=RS("ID")%>">

Avatar billede isl19960 Nybegynder
03. april 2002 - 08:45 #1
din refresh skal stå øverst i siden før der bliver skrevet andet... og så skal det også afsluttes med </head> og </html>...
Avatar billede meyer Nybegynder
03. april 2002 - 08:55 #2
Ja resten af HTML koderne har jeg - men mener du at asp koden skal stå efter refresh??
Avatar billede krogstrup Nybegynder
03. april 2002 - 08:55 #3
meyer >>>

Du bliver nødt til at forklare hvilken fejl der opstår - vis os lidt mere om dit problem !
Avatar billede krogstrup Nybegynder
03. april 2002 - 08:56 #4
isl9960 >>>

Det er noget vrøvl du siger - META refresh skal være placeret mellem HEAD og /HEAD !!!!
Avatar billede isl19960 Nybegynder
03. april 2002 - 09:01 #5
hmmm... glem lige det jeg skrev... dit RS("ID") er jo ikke defineret på det tidspunkt... :(

Skal det være efter 10 sek. ?

Ellers kunne du jo bare lave en alm. response.redirect...
Avatar billede isl19960 Nybegynder
03. april 2002 - 09:02 #6
krogstrup -> jeg har vist ikke skrevet at det ikke skal stå i <head> :)
Avatar billede cms Nybegynder
03. april 2002 - 09:06 #7
meyer: Hvad er det den skal kunne? Er det en slags webring?
Avatar billede krogstrup Nybegynder
03. april 2002 - 09:13 #8
isl9960 >>>
Nej, det ved jeg godt - det jeg mente var blot at der ikke var noget i vejen med rækkefølgen på koden, som du påpegede!
Avatar billede meyer Nybegynder
03. april 2002 - 09:20 #9
Siden ligger i en frame og skal vise annoncer derfor refresh efter 10 sek.

Den skal ikke vise dem random med fortløbende - men når jeg laver movenext går det galt - så får jeg BOF or EOF - jeg har kigget mig totalt blind på den efterhånden. :-(
Avatar billede yellow Nybegynder
03. april 2002 - 12:05 #10
***Sql = "Select * from xxx WHERE ID = "& ID &""***
Jeg går ud fra dine ID'er er unikke. Her selecter du altså kun én tabelrække - den tabelrække hvor ID er lig dit request ID.

***IF ID = RS("ID") THEN***
Det giver ingen mening, da det altid vil være sandt. Det er jo netop det kriterie du har selected ud fra.

***RS.MoveNext***
Som nævnt før består dit recordset kun af én tabelrække, derfor får du BOF or EOF når du prøver at gå til den næste...der er ikke flere rækker!

LØSNING? Lad os gå ud fra at dine ID'er har fortløbende numre.

ID = request.Querystring("ID")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open db

If ID = "" Then
  ID = -1 'dummy id så du ikke får fejl i sql syntaks
Sql = "Select * from xxx WHERE ID = "& ID + 1 &""
Set RS =  myconn.Execute(Sql)
if RS.EOF then
  RS.Close
  SQL = "SELECT TOP 1 FROM xxx"
  Set RS =  myconn.Execute(Sql)
end if
if not RS.EOF then
  ID = RS("ID")
end if
RS.Close
%>
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="10;URL=http://www.xxxxxx.dk/xxxxx.asp?ID=<%=ID%>">


Jeg har ikke testet ovenstående, men jeg tror du kan se ideen i det.
Avatar billede yellow Nybegynder
03. april 2002 - 12:06 #11
ups mangler lige en "end if" efter 2. linie:

If ID = "" Then
  ID = -1 'dummy id så du ikke får fejl i sql syntaks
end if
Avatar billede meyer Nybegynder
03. april 2002 - 12:14 #12
Problemet er netop at de IKKE er fortløbende - men bliver valgt ud fra flere kriterier :-( det var derfor jeg mente at en rs.movenext skulle bruges der.
Avatar billede yellow Nybegynder
03. april 2002 - 12:24 #13
Ok, I så fald kan du vælge alle records, søge efter dit "gamle" ID, og derefter vælge næste række. Der findes en mere effektiv måde at søge efter ID på end jeg har gjort nedenfor. Det er ved brug af "find" og "filter", men jeg kan ikke lige på stående fod huske hvordan man bruger dem.

SQL = "SELECT * FROM xxx"
Set RS =  myconn.Execute(Sql)
isFound = false
do while not RS.EOF and not isFound
  if ID = RS("ID") then
    isFound = true
  end if
  RS.MoveNext
loop
if RS.EOF then
  RS.MoveFirst
end if
Avatar billede meyer Nybegynder
03. april 2002 - 12:35 #14
Nu fejlmelder den ikke mere - men den skifter ikke id
Avatar billede yellow Nybegynder
03. april 2002 - 13:22 #15
Ups, et lille type problem. Prøv den her i stedet:

<%
ID = trim( request.Querystring("ID") )

Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open db

SQL = "SELECT * FROM xxx"
Set RS =  myConn.Execute(Sql)
isFound = false
do while not RS.EOF and not isFound
  if ID = CStr( RS("ID") ) then
    isFound = true
  end if
  RS.MoveNext
loop
if RS.EOF then
  RS.MoveFirst
end if

ID = RS("ID")
Response.Write( ID )

RS.Close


%>
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="2;URL=test.asp?ID=<%=ID%>">
</head>
</html>
Avatar billede meyer Nybegynder
03. april 2002 - 13:33 #16
Perfekt!!  mange tak for hjælpen - smid lige et svar så er pointene dine :-)
Avatar billede yellow Nybegynder
03. april 2002 - 13:35 #17
:)
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