Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:14 Der er 28 kommentarer og
1 løsning

2 asp script problemer

hejsa!
sidder med to problemer i ASP.. derfor giver jeg 200point.. 100 for hver.

problem 1.

jeg får denne fejl når ved brug af  "ORDER BY id DESC"

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in ORDER BY clause

-------

hvad betyder det?

problem 2.

I mit script er der en kode som laver side opdeling.. den virker også fint, men det er kun meningen den skal lave sideopdeling inden for den katogori den er i og ikke alt der er i databasen.. fx. skal den kun lave sideopdeling for katogori "A" hvis man har valgt den katogori..
For at vise alle links i katogori "A" bruger jeg denne kode

<a href="links.asp?alfa=A">A</a>

og i min kodeopdelings kode bruger jeg denne


Response.Write "<p>Gå Til Side "
For intNum = 1 To intPageCount
    Response.Write "<a href=links.asp?page=" & intNum & ">" & intNum & "</a> "
Next

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


men hvordan kan jeg får scriptet til at tage bogstavet "A" med? eller "B" hvis man har valgt den katogori...

/Data
Avatar billede hossein Nybegynder
13. april 2003 - 12:20 #1
læg din sql sætning!
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:21 #2
1) Hele sql-sætningen, tak
2)
  Response.Write "<a href=links.asp?page=" & intNum & "&alfa=" & alfa & ">" & intNum & "</a> "

hvor du så inden kan

  alfa = request.querystring("alfa")
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:24 #3
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM links WHERE godkendt=1"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
If Request("alfa") > "" Then strSQL = strSQL & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 30
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Page " & intPage & " Of " & intPageCount & "</b></p>"
    %>

værsgo.. jeg tester lige nr. 2 ..
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:25 #4
hvor står der "order by"
Avatar billede hossein Nybegynder
13. april 2003 - 12:26 #5
If Request.QueryString("page") = "" Then
    iPageCurrent = 1
Else
    iPageCurrent = CInt(Request.QueryString("page"))
End If
Avatar billede hossein Nybegynder
13. april 2003 - 12:28 #6
iPageCurrent skal vær intPage

hvor er Sql sætning?
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:28 #7
erikjacobsen:
sorry den kom jeg til at fjerne efter at have testet, men det ser sådan her ud.

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database.mdb")
str_sql2 = "SELECT * FROM links WHERE godkendt=(1) ORDER BY id DESC "
If Request("alfa") > "" Then str_sql2 = str_sql2 & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"
Set rs = Conn.Execute (str_sql2)
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:29 #8
str_sql2 = "SELECT * FROM links WHERE godkendt=(1) ORDER BY id DESC "
If Request("alfa") > "" Then str_sql2 = str_sql2 & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"

ændres til


str_sql2 = "SELECT * FROM links WHERE godkendt=(1) "
If Request("alfa") > "" Then str_sql2 = str_sql2 & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"
str_sql2 = str_sql2 & " ORDER BY id DESC"
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:31 #9
Jeg kigger lige på det i har skrevet.. her har i hele scriptet imens

<html><head>
<title></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 links WHERE godkendt='1' ORDER BY id DESC "
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 = 30
    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=links.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=links.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=links.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>

</body></html>
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:33 #10
ericjacobsen..
tak for Order By koden.. den virker:)
jeg kigger lige hurtigt på det andet..
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:39 #11
jeg er lidt forvirret med den sidste..

der er 3 steder hvor denne kode kan smides ind
Response.Write "<a href=links.asp?page=" & intNum & "&alfa=" & alfa & ">" & intNum & "</a> "

men går ikke ud fra den skal se sådan ud alle 3 steder?
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:40 #12
Jo alle tre steder - selvfølgelig rettet passende til
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:50 #13
Det virker næsten men den laver en lille fejl..

den skulle gerne se sådan her ud

Gå til side: 1 2 3 4 5 6 7 osv.
                << >>

men den ser sådan her ud

Gå til side: 1 2 3 4 5 6 7 osv.
                << 8

her er scriptet som jeg har lavet det

        <%
End If
rs.Close
Set rs = Nothing

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

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=links.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=links.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:53 #14
sorry forket kode.. backup koden det der

her er den

        <%
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
alfa = request.querystring("alfa")
For intNum = 1 To intPageCount
Response.Write "<a href=links.asp?page=" & intNum & "&alfa=" & alfa & ">" & intNum & "</a> "
Next

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

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
Response.Write "<a href=links.asp?page=" & intPage + 1 & "&alfa=" & alfa & ">" & intNum & "</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:54 #15
øh - det kan da ikke passe ....
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:55 #16
Nå, ok. Så er det den sidste


Response.Write "<a href=links.asp?page=" & intPage + 1 & "&alfa=" & alfa & ">" & intNum & "</a> "

hvor du har lavet lidt for meget klippe-klistre ...
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:56 #17
de virker godt, men der skal bare ikke stå tal ud for... det skal være tegnene << >> men selv om der står et tal virker den godt..den går enten en frem eller en tilbage
Avatar billede erikjacobsen Ekspert
13. april 2003 - 12:57 #18
Prøv lige at kigge på den linie jeg viser dig - du beder den om at skrive et tal ;)
Avatar billede data2k.dk Nybegynder
13. april 2003 - 12:59 #19
hvordan fjerner jeg den del?

<< >> fra koden? den forvirrer mig:O)
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:01 #20
Response.Write "<a href=links.asp?page=" & intPage + 1 & "&alfa=" & alfa & ">" & intPage & "</a> "

går ud fra det er sådan?
Avatar billede erikjacobsen Ekspert
13. april 2003 - 13:02 #21
Den sidste linie der ser sådan ud

Response.Write "<a href=links.asp?page=" & intPage + 1 & "&alfa=" & alfa & ">" & intNum & "</a> "

skal være


Response.Write "<a href=links.asp?page=" & intPage + 1 & "&alfa=" & alfa & ">" & "&gt;&gt;" & "</a> "

li'som du (næsten) havde det før
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:05 #22
ja den virker...

hvordan laver du den modsat?

altså Response.Write "<a href=links.asp?page=" & intPage - 1 & "&alfa=" & alfa & ">" & "&gt;&gt;" & "</a> "

men hvor tegnene går denne vej <<
Avatar billede erikjacobsen Ekspert
13. april 2003 - 13:07 #23
&lt;&lt;
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:09 #24
takker.. det virker jo perfekt!:) læg et svar
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:14 #25
lige hurtigt.. kan du også lave ORDER BY date til denne ?

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM links WHERE godkendt=1"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
If Request("alfa") > "" Then strSQL = strSQL & " AND instr('" & LCase(Request("alfa")) & "',lcase(left(title,1)))>0"
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 30
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Page " & intPage & " Of " & intPageCount & "</b></p>"
    %>
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:15 #26
order by ID hedder det
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:18 #27
never mind... har fixet det:)

bare læg et svar:)
Avatar billede erikjacobsen Ekspert
13. april 2003 - 13:19 #28
Ellers tak - jeg samler ikke på point. Jeg er blot glad for
at du fik det til at virke.
Avatar billede data2k.dk Nybegynder
13. april 2003 - 13:27 #29
Jammen tak for hjælpen:) Jeg er også glad for det virker nu.. har haft problemet i lang tid nu det endelig løst!

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