Avatar billede mr.meincke Nybegynder
26. marts 2002 - 15:00 Der er 7 kommentarer og
1 løsning

"Sider" med MySQL

Hej eksperter!
Jeg skal have lavet et script hvor du bruger "sider" (altså så du kan vælge fx hvis der er 12 så er der 2 sider ... dvs at den skal vise 10 records pr. side)
Jeg brugte denne kode til access databaser:
<table bgcolor="#A1B17B" border="0" align="left" cellpadding="0" cellspacing="0" width="410">
        <tr>
            <td width="15" bgcolor="A1B17B" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;" align="center"><span class="MainText" style="color: #FFFFFF;">¤</span></td>
            <td width="175" bgcolor="A1B17B" style="border-top: 1px solid #A1B17B;"><span class="MainText" style="color: #FFFFFF;">&nbsp;Question</span></td>
            <td width="55" bgcolor="A1B17B" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;"><span class="MainText" style="color: #FFFFFF;">&nbsp;Points</span></td>
            <td width="110" bgcolor="A1B17B" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;"><span class="MainText" style="color: #FFFFFF;">&nbsp;Created</span></td>
            <td width="55" bgcolor="A1B17B" style="border-top: 1px solid #A1B17B;"><span class="MainText" style="color: #FFFFFF;">&nbsp;Answers</span></td>
        </tr>
        <%
        intPage = Request("page")
        if isNumeric(intPage) = False or intPage < 1 then
            intPage = 1
        end if
        if Request("page") = "" then
            intPage = 1
        end if
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "SELECT * FROM ForumSpm WHERE KatBesk='" & kat("KatBesk")  & "' AND Besvaret='Yes' ORDER BY id desc"
        strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")
        rs.Open strSQL, strDSN, 1
        if rs.EOF then
        %>
        <tr>
            <td width="15" bgcolor="E1EBC9" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;"></td>
            <td width="175" bgcolor="EBF0E0" style="border-top: 1px solid #A1B17B;"><span class="MainText">&nbsp;No questions here :o)</span></td>
            <td width="55" bgcolor="EBF0E0" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;"></td>
            <td width="110" bgcolor="EBF0E0" align="center" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;"></td>
            <td width="55" bgcolor="EBF0E0" style="border-top: 1px solid #A1B17B;"></td>
        </tr>
        <%
        else
        if not (rs.eof or rs.bof) then
        rs.PageSize = 10
        rs.AbsolutePage = intPage
        intRecCount = rs.PageSize
          intPageCount = rs.PageCount
        do while not rs.eof and intRecCount > 0
        %>
        <tr>
            <td width="15" bgcolor="E1EBC9" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;" align="center"><span class="MainText"><img src="./images/fstatus3.jpg" border="0" width="9" height="9"></span></td>
            <td width="175" bgcolor="EBF0E0" style="border-top: 1px solid #A1B17B;"><span class="MainText">&nbsp;<a href="./question.asp?id=<%=rs("id")%>"<% if Len(rs("Spm")) > 30 then %> title="<%=rs("Spm")%>" class="MainLink01"><%= left(rs("Spm"), 30)%>...<% else %> class="MainLink01"><%=rs("Spm")%><% end if %></a></span></td>
            <td width="55" bgcolor="EBF0E0" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;" align="right"><span class="MainText"><%=rs("Points")%>&nbsp;</span></td>
            <td width="110" bgcolor="EBF0E0" align="center" style="border-top: 1px solid #A1B17B; border-right: 1px solid #A1B17B;"><span class="MainText">06-03-2002 15:07:06</span></td>
            <td width="55" bgcolor="EBF0E0" style="border-top: 1px solid #A1B17B;"><span class="MainText">&nbsp;<%=rs("Indlaeg")%></span></td>
        </tr>
        <%
        intRecCount = intRecCount - 1
        rs.MoveNext
        loop
        end if
        end if
        %>
        <tr>
            <td width="15" bgcolor="E1EBC9" style="border-top: 1px solid #A1B17B;"></td>
            <td width="175" bgcolor="E1EBC9" style="border-top: 1px solid #A1B17B;"><span class="MainText">Page <%=FormatNumber(intPage, Standard)%> of <% if not intPageCount = 0 then %><%=FormatNumber(intPageCount, Standard)%><% else %>1<% end if %></span></td>
            <td width="55" bgcolor="E1EBC9" style="border-top: 1px solid #A1B17B;"></td>
            <td width="110" bgcolor="E1EBC9" align="center" style="border-top: 1px solid #A1B17B;"></td>
            <td width="55" bgcolor="E1EBC9" style="border-top: 1px solid #A1B17B;"><span class="MainText"><% if intPageCount < 1 then %><font color="#A1B17B">&laquo;</font>&nbsp;<font color="#A1B17B">&raquo;</font><% else %><% if intPage > 1 then %><a href="./listcat.asp?name=<%=kat("KatBesk")%>&page=<%= intPage-1 %>" class="MainLink01">&laquo;</a><% else %><font color="#A1B17B">&laquo;</font><% end if %>&nbsp;<% if not intPage = intPageCount then %><a href="./listcat.asp?name=<%=kat("KatBesk")%>&page=<%= intPage+1 %>" class="MainLink01">&raquo;</a><% else %><font color="#A1B17B">&raquo;</font><% end if %><% end if %></span></td>
        </tr>
        </table>
        </td>
        </tr>
        </table>
        <br>
        <% end if %>
+-+-+-+-+-+-+
og den virker ikke med MySQL. Glem alt om "LIMIT".

Mvh
Mr.Meincke
Avatar billede coltau Juniormester
26. marts 2002 - 16:43 #1
Jeg har desværre samme problem på min lokale MySql. Den ODBC-driver man normalt anvender til MySql lokalt understøtter ikke kommandoer som RecordCount, AbsolutePage mv. og de er nødvendige for at ovenstående kode virker.

Jeg har desværre ikke fundet en løsning endnu.
Avatar billede mr.meincke Nybegynder
26. marts 2002 - 16:46 #2
tja...det er noget være **** :o)
Avatar billede mr.meincke Nybegynder
26. marts 2002 - 18:33 #3
er klaret :)
og coltau læs denne artikel
http://activedeveloper.dk/aspdigital/2001112301.asp
så lærer du end del :o)
Avatar billede mr.meincke Nybegynder
26. marts 2002 - 18:45 #4
Når det er klaret så kan man jo lige så godt lukke :)
Avatar billede coltau Juniormester
26. marts 2002 - 20:28 #5
Ja - du har løst dit problem - men ikke mit. Det ændre ikke min lokale ODBC-driver således at den understøtter de omtalte kommandoer. Men jeg ved det kan lade sig gøre jeg skal bare finde løsningen.
Avatar billede mr.meincke Nybegynder
26. marts 2002 - 21:10 #6
RecordCount i SQL:
Set rs = Conn.Execute("SELECT COUNT(*) AS FOUND FROM DinTabel")
intRecords = int(rs("FOUND"))
Response.Write "Der er " & intRecords & " records i DinTabel"

Paging i SQL:
se http://activedeveloper.dk/aspdigital/2001112301.asp
Avatar billede coltau Juniormester
26. marts 2002 - 22:17 #7
Den kender jeg godt - men det jeg er ude efter er selvfølgelig at anvende kommandoerne, AbsolutePage og PageSize mv. De anvendes til at inddele sit recordset i sider med et bestemt antal poster på hver side og så derefter vælge den side man ønsker.

Men jeg må sige at det eksempel du har fundet laver pageing uden brug af disse kommandoer.
Avatar billede mr.meincke Nybegynder
26. marts 2002 - 23:04 #8
jepper ... og det er jo godt :)
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