Avatar billede mranders Nybegynder
04. marts 2004 - 22:35 Der er 12 kommentarer og
1 løsning

fejl i paging

har dennne kode:

<%
Set Conn = Server.CreateObject("ADODB.RecordSet")
Conn.Open "Driver={MySQL ODBC 3.51 Driver};server=***;Database=***;uid=***;pwd=***;" '(line 23)

Set rs = Conn.Execute("SELECT COUNT(*) AS records FROM tabel;")
intRecords = int(rs("records"))

intPage = Request.QueryString("page2")
if intPage = "" OR not isNumeric(intPage) then
  intPage = int(1)
else
  intPage = int(intPage)
end if

intPageSize = int(5)
intStart = intPage*intPageSize
intStart = intStart-intPageSize
intPages = int(intRecords/intPageSize)+1

Set rs = Conn.Execute("Select * From events where dato >= '" & dato2 & "' order by dato")
%>
<% Do until rs.EOF %>
<TR class="main">
    <TD>
<% if rs("link") = "" then %>
<% =rs("dato") %> - <% =rs("event") %> - <A HREF='http://www.musicon.dk/default.asp?page=eventprofil&id=<% =rs("id") %>'>Beskrivelse</a>
<% else %>
<% =rs("dato") %> - <A HREF='<% =rs("link") %>' target="_blank"><% =rs("event") %></A> - <A HREF='http://www.musicon.dk/default.asp?page=eventprofil&id=<% =rs("id") %>'>Beskrivelse</a>
<% end if %>
    </TD>
</TR>
<%
rs.MoveNext
Loop

For i = 1 to intPages
  if i = intPage then
    Response.Write "<b>" & i & "</b> "
  else
    Response.Write "<a href=""paging.asp?page=" & i & """>"
    Response.Write i
    Response.Write "</a> "
  end if
%>

får denne fejl:

The connection cannot be used to perform this operation. It is either closed or invalid in this context.

/events.asp, line 23
Avatar billede mranders Nybegynder
04. marts 2004 - 22:38 #1
Set rs = Conn.Execute("Select * From events where dato >= '" & dato2 & "' order by dato")

er nu:

Set rs = Conn.Execute("Select * From events LIMIT " & intStart & ", " & intPageSize & "where dato >= '" & dato2 & "' order by dato")
Avatar billede eagleeye Praktikant
04. marts 2004 - 22:38 #2
denne linje:
Set Conn = Server.CreateObject("ADODB.RecordSet")

skal være:
Set Conn = Server.CreateObject("ADODB.Connection")
Avatar billede eagleeye Praktikant
04. marts 2004 - 22:41 #3
og denne:

Set rs = Conn.Execute("Select * From events LIMIT " & intStart & ", " & intPageSize & "where dato >= '" & dato2 & "' order by dato")

sskal være, sådan her limit skal være tilsidst:

Set rs = Conn.Execute("Select * From events where dato >= '" & dato2 & "' order by dato LIMIT " & intStart & ", " & intPageSize )
Avatar billede mranders Nybegynder
04. marts 2004 - 22:45 #4
kanon det virker nu men, den har lidt problemer med:

Set rs = Conn.Execute("Select * From events LIMIT " & intStart & ", " & intPageSize & " where dato >= '" & dato2 & "' order by dato")

det virker hvis jeg fjerner:

& " where dato >= '" & dato2 & "' order by dato")

så der må være en fejl heri

& " where dato >= '" & dato2 & "' order by dato")  virkede før jeg lavede paging
Avatar billede mranders Nybegynder
04. marts 2004 - 22:45 #5
ok min fejl glemte at opdaterer først
Avatar billede mranders Nybegynder
04. marts 2004 - 22:49 #6
smid et svar det virker
Avatar billede eagleeye Praktikant
04. marts 2004 - 22:51 #7
Ok :)
Avatar billede mranders Nybegynder
04. marts 2004 - 22:53 #8
opdagede lige at der kommer 2 sider for meget i min paging, kan du se hvofor ?
Avatar billede mranders Nybegynder
04. marts 2004 - 22:54 #9
hvis intPageSize = int(1)
Avatar billede eagleeye Praktikant
04. marts 2004 - 22:56 #10
Prøv at rette denne linje:

intPages = int(intRecords/intPageSize)+1

Til:

intPages = int(intRecords/intPageSize)
if intRecords/intPageSize > intPages then intPages+1
Avatar billede mranders Nybegynder
04. marts 2004 - 23:04 #11
tror den laver fordi jeg deler databasen over i to dem hvor dato2 er < end i dag og dem hvor den er > end i dag
Avatar billede eagleeye Praktikant
04. marts 2004 - 23:07 #12
hmm denne:
Set rs = Conn.Execute("SELECT COUNT(*) AS records FROM tabel;")

Skal være med samme where del som den anden sådan den tæller antal poster rigtigt. så prøv at rette den til:

Set rs = Conn.Execute("SELECT COUNT(*) AS records FROM events where dato >= '" & dato2 & "'")
Avatar billede mranders Nybegynder
04. marts 2004 - 23:16 #13
stor hjælp takker
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