Avatar billede data2k.dk Nybegynder
12. april 2003 - 09:41 Der er 19 kommentarer og
1 løsning

lave side opdeling

hejsa! :-)

Jeg har siddet og prøvet lave lidt på mit script så den automatisk laver en ny side hver gang den er nået til 30 titler. før jeg smider min kode ind som sådan som jeg prøvede den vil jeg gerne helst vente til i har prøvet for ikke at forvirre jer... jeg har nemlig forvirret mig selv godt og grundigt med de forskellige forsøg:o) Men hvis i heller ikke kan vil jeg prøve at vise jer min code så kan de være i kan rette den til.

Her er den kode som der skal tilføjes side opdelingskoden til.



--------------------------


<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database.mdb")
str_sql2 = "SELECT * FROM downloads WHERE godkendt=(1) "
If Request("alfa") > "" Then str_sql2 = str_sql2 & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"
Set rs = Conn.Execute (str_sql2)
%>
        <div align="center">
          <%
if rs.EOF then
%>
          <span class="overskrift"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Tomt!</b></font> </span>
          <%
else
%>
         
  <table width="88%" height="24" cellspacing="2">
    <tr bgcolor="Black">
      <td width="42%"><font face=tahoma size=2 color="#FFFFFF"><b>Titel</b></font></td>
    </tr>
    <%
Do Until rs.EOF
%>
    <tr>
      <td width="42%"><font face=tahoma size=2>
        <% = rs("title") %>
        </font></td>
    </tr>
    <%
rs.MoveNext
Loop
%>
    <p></p>
  </table>
        </div>
        <% end if
        rs.Close
  Conn.Close
  Set rs = Nothing
  Set Conn = Nothing %>



---------------------
Avatar billede snuseren.dk Nybegynder
12. april 2003 - 09:46 #1
Det er vist lidt lettere at læse denne artikel: http://activedeveloper.dk/aspdigital/kapitel2/paging.asp

MVH
Anders
Avatar billede data2k.dk Nybegynder
12. april 2003 - 09:53 #2
jeg vil prøve at smide det på og se om det virker. om jeg kan få det til at virke hedder det:)
Avatar billede data2k.dk Nybegynder
12. april 2003 - 10:01 #3
der er en lille forskel her...gør det noget?


strSQL = "SELECT LinkURL FROM Links"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/aspdigital/db/demo.mdb")

og min

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database.mdb")
str_sql2 = "SELECT * FROM downloads WHERE godkendt=(1) "




select delen kommer først bagefter i min
Avatar billede data2k.dk Nybegynder
12. april 2003 - 10:21 #4
jeg denne fejl

Operation is not allowed when the object is open.
Avatar billede data2k.dk Nybegynder
12. april 2003 - 10:22 #5
måske er det i denne del

Set rs = Conn.Execute (str_sql2)

rs.Open strSQL, strDSN, 1

ser lidt forkert ud synes jeg
Avatar billede twm Nybegynder
12. april 2003 - 10:24 #6
execute skal altid komme efter du har åbnet databasen
Avatar billede twm Nybegynder
12. april 2003 - 10:27 #7
men i forhold til eksemplet skal du i stedet for bruge:
rs.Open str_sql2, strDSN, 1
da det jo er dit recordset der skal pages
Avatar billede data2k.dk Nybegynder
12. april 2003 - 10:42 #8
jeg tror det er mig der samler det forkert... den siger stadig

Operation is not allowed when the object is open

kan det være i denne del så?

str_sql2 = "SELECT * FROM downloads WHERE godkendt=(1) "

i eksemplet skriver er den nemlig også anderledes

den har FROM med
Avatar billede twm Nybegynder
12. april 2003 - 11:05 #9
Her kommer din kode sat ind i paging eksemplet.
Jeg har af gode grunde ikke testet koden:
<html><head>
<title>Paging af et recordset</title>
</head><body>

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM downloads WHERE godkendt='1'"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    %>
    <table width="88%" height="24" cellspacing="2">
        <tr bgcolor="Black">
            <td width="42%"><font face=tahoma size=2 color="#FFFFFF"><b>Titel</b></font></td>
        </tr>
<%
    Do While Not rs.EOF And intRecCount > 0
    %>
        <tr>
            <td width="42%"><font face=tahoma size=2>
                <% = rs("title") %>
            </font></td>
        </tr>

    <%
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
    %>
    </table>
    <%
Else
%>
          <span class="overskrift"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Tomt!</b></font> </span>
<%
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>

</body></html>
Avatar billede thb Nybegynder
12. april 2003 - 11:28 #10
Jeg plejer at gøre sådan... (meget simpel)

<%
    'Åbning af databasen
    Set conn = Server.CreateObject("ADODB.Connection")
    DBPath = "DBQ=" & server.mappath("stien til din database")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

    ' Tæller antallet af recordsæt
    SQL = "select count(*) as antal from tabel"
    set count = conn.Execute(SQL)

    ' Åbner til udskrift
    SQL = "select * from tabel"
    set d = conn.Execute(SQL)

    opdel = request.querystring("opdel")
    if opdel = "" then opdel = 1
    recordnr = count("antal")
    maxdel = int(recordnr/31)+1
    if maxdel = 0 Then maxdel = 1

    if d.bof or d.eof
        response.write "Der blev ikke fundet noget i databasen"
    else
       
        if opdel > 1 then response.write "<a href='?opdel=" & opdel-1 & "'>Forrige side</a>" else response.write "Forrige"
        response.write "&nbsp;&nbsp;Side: " & opdel & " af " & maxdel & " sider&nbsp;&nbsp;"
        if opdel < int(maxdel) then response.write "<a href='?opdel=" & opdel+1 & "'>Næste side</a>" else response.write "Næste"

        d.movefirst
        Do while not d.eof
            If Recordnr >= opdel*30-29 and Recordnr <= opdel*30 Then
                response.write d("navnpåetellerandet") & "<br>"   
            end if
            Recordnr = Recordnr +1
        d.movenext
        Loop

        if opdel > 1 then response.write "<a href='?opdel=" & opdel-1 & "'>Forrige side</a>" else response.write "Forrige"
        response.write "&nbsp;&nbsp;Side: " & opdel & " af " & maxdel & " sider&nbsp;&nbsp;"
        if opdel < int(maxdel) then response.write "<a href='?opdel=" & opdel+1 & "'>Næste side</a>" else response.write "Næste"

    end if

    d.close
    Set s = Nothing

    count.close
    Set count = Nothing

%>
Avatar billede twm Nybegynder
12. april 2003 - 11:32 #11
så ryger lidt af pointen med paging! Hvis du har en tabel med 3 millioner records så kan det godt være lidt træls med de svartider man får ud af det! Den henter alt vær gang! ;)
Avatar billede data2k.dk Nybegynder
12. april 2003 - 11:33 #12
twm:

jeg tror dit forsøg var tæt på.. kom bare med en anden fejl

ODBC driver does not support the requested properties.


hvis det siger dig noget?
Avatar billede twm Nybegynder
12. april 2003 - 11:41 #13
hvilken linje kom det i?
Avatar billede twm Nybegynder
12. april 2003 - 11:42 #14
Ellers så send mig DB'en så skal jeg nok ordne det! ;)
Avatar billede data2k.dk Nybegynder
12. april 2003 - 12:46 #15
twm:

here you go http://80.196.154.241/database.mdb

den er pinlig simpel, men hvis du kan få det til at virke med databasen så er det jo godt:)
Avatar billede twm Nybegynder
12. april 2003 - 14:00 #16
det var mig der ikke er vant til at skrive til access:
strSQL = "SELECT * FROM downloads WHERE godkendt='1'"
skal se således ud:
strSQL = "SELECT * FROM downloads WHERE godkendt=1"
Avatar billede data2k.dk Nybegynder
12. april 2003 - 14:07 #17
twm:

det virker lidt:) dvs. men den skulle gerne kun lave side tal for katogori "A" hvis man vælger den katogori... eller for "B" nu tager den alle links i databasen..

jeg kan se du har taget denne del ud

If Request("alfa") > "" Then str_sql2 = str_sql2 & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"


men ellers virkede koden godt
Avatar billede data2k.dk Nybegynder
12. april 2003 - 14:12 #18
har fået det til at virke selv:O)

takker twm!
Avatar billede twm Nybegynder
12. april 2003 - 14:17 #19
Det var så lidt!
Den linje svipsede lige ;)
Avatar billede data2k.dk Nybegynder
12. april 2003 - 14:28 #20
bare lige en lille ting som den ikke scriptet ikke tager med selv..

i denne linie

      Response.Write "<a href=downloads.asp?page=" & intNum & ">" & intNum & "</a> "

hvordan får man den til at medtage "alfa" delen... når man trykker tager den nemlig alle links med igen..

når man fx. vil se alt under A laver jeg et link sådan her

downloads.asp?alfa=A

... skal man lave en eller anden Request?

det er i hvertfald i denne linie den skal laves på en eller anden måde

Response.Write "<a href=downloads.asp?page=" & intNum & ">" & intNum & "</a> "
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