webForumDet fria alternativet

radera "pagin" ur kod

ASP

7 svar · 181 visningar · startad av tank82

Medlem sedan feb. 2003210 inlägg
Frågan#1

Hejsan!
Kan någon vänlig själ hjälpa mig med att ta bort "sida pagin" i denna kod? Det skulle vara kanon! (och även snygga till den ;) )

<table cellpadding="1" cellspacing="0" width="100%" border="0">

<%Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")

If Request.QueryString("ID") = "" Then

Set RecSet = Server.CreateObject("ADODB.Recordset")
Sidan = Request.QueryString("sida")
If Sidan = "" then 
     sida = 1 
Else 
     sida = Sidan 
End If 

With RecSet
    .CursorLocation = 3
    .CacheSize = 999
End With

SQL = "SELECT * FROM nyhetartikel Order By id desc"

RecSet.Open SQL, Conn

If RecSet.EOF Then%>
     <tr>
        <td>Här var det tomt..</td>
     </tr>
<%Else

With RecSet
  .MoveFirst 
  .PageSize = 999
  .AbsolutePage = sida
End With

Sidor =  RecSet.PageCount
x = 0
Do While Not RecSet.EOF And x < RecSet.PageSize%>
     <tr>
        <td width="100%" valign="top"><%=RecSet("rubrik")%>td>
     </tr>
<%x=x+1 
RecSet.MoveNext
Loop
RecSet.Close
If Sidor > 1 Then%>
  <tr>
     <td valign="top" colspan="2" style="border-top: 1px solid #000000">
       <%For Sid = 1 To Sidor
               If (Int(Sid)) = (Int(sida)) Then%><b><%=Sid%></b><%Else%> <a href="index.asp?page=page&sida=<%=Sid%>"><%=Sid%></a> <%End If
         Next%> 
    </td>
  </tr>
<%End If
  End If
End If
If Request.QueryString("ID") <> "" Then
Set RS=Conn.Execute("Select * From nyhetartikel Where id=" & Request.QueryString("ID"))%>
     <tr>
        <td><font color="#000000"><%=RS("rubrik")%></td>
     </tr>
     <tr>
        <td height="20"></td>
     <tr>
        <td colspan="2"><%=Replace(RS("texten"),vbCrLf, "<br>")%></td>
     </tr>
     <tr>
        <td height="5"></td>
     <tr>
  <tr>
    <td height="5"></td>
  </tr>
  <tr>
    <td height="20" valign="top"><%=FormatDateTime(RS("datum"),1)%></td>
  </tr>
<%End If%>
</table>
Medlem sedan dec. 20003 563 inlägg
#2
<table cellpadding="1" cellspacing="0" width="100%" border="0">

<%
Dim Conn, SQL1, SQL2, NewsID, Rs1, Rs2
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")

NewsID = Request.QueryString("ID")

If len(trim(NewsID)) = 0 Then

	SQL1 = "SELECT rubrik FROM nyhetartikel Order By id desc"
	Set Rs1 = Conn.Execute(SQL1)

	If Rs1.Eof Then
		response.write("<tr><td>Här var det tomt..</td></tr>")
	Else
		do until Rs1.Eof
			response.write("<tr><td width='100%' valign='top'>" & Rs1("rubrik") & "</td></tr>")
		Rs1.MoveNext
		Loop
	End If

	Set Rs1 = nothing

End If

If len(trim(NewsID)) > 0 AND IsNumeric(NewsID) Then

	SQL2 = "SELECT rubrik, texten, datum FROM nyhetartikel WHERE id=" & NewsID
	Set Rs2 = Conn.Execute(SQL2)

	if Rs2.Eof then
		response.write("<tr><td>Här var det tomt..</td></tr>")
	else
		response.write("<tr><td><font color='#000000'>" & Rs2("rubrik") & "</td></tr>")
		response.write("<tr><td height='20'></td></tr>")        
		response.write("<tr><td colspan='2'>" & Replace(Rs2("texten"), chr(10), "<br>") & "</td></tr>")
		response.write("<tr><td height='5'></td><tr>")
		response.write("<tr><td height='20' valign='top'>" & FormatDateTime(Rs2("datum"),1) & "</td></tr>")
	End if

End If
%>

</table>
Medlem sedan feb. 2003210 inlägg
#3

hmm nu får jag detta meddelande, men för en annan sida? (nämligen sok.asp):

Microsoft VBScript compilation error '800a0411' 

Name redefined 

sok.asp, line 14 

Dim Conn
----^

Sen undrar jag vad detta betyder:

Dim Conn, SQL1, SQL2, NewsID, Rs1, Rs2

tex "NewsID" vad är det, jag har inget i min DB som heter så, endast ID.

Medlem sedan mars 20015 287 inlägg
#4

Dim = "Dimma" = Dimensionera. Du deklarerar de variabler du använder dig av i sidan/koden.
Mao gör plats i minnet = det går fortare.

Felet får du eftersom att just den variabeln tydligen deklareras två gånger, ta bort den ena förekomsten av: Dim Conn

Just NewsID är ju en variabel som i alla fall cyprys använder i den kod han skrivit till dig.

Medlem sedan feb. 2003210 inlägg
#5

Hur då ta bort, ska jag radera hela denna rad? :)

Dim Conn, SQL1, SQL2, NewsID, Rs1, Rs2
Medlem sedan mars 20015 287 inlägg
#6

Plocka bara bort Conn ur den raden:

Dim SQL1, SQL2, NewsID, Rs1, Rs2

Medlem sedan dec. 20003 563 inlägg
#7

Du kan radera den ja.

Det hela är väldigt enkelt egentligen.
Varje gång du skall använda en variabel så är det bra praxis att i början på varje sida säga till servern:
"Den här variabeln har jag skapat, bara så du vet"

Detta gör du med Dim.
ex. Dim Conn

Du kan inte skapa samma variabel två gånger, och det är därför den skriker.

Byt bara ut
Dim Conn, SQL1, SQL2, NewsID, Rs1, Rs2
till
Dim SQL1, SQL2, NewsID, Rs1, Rs2
eftersom du redan "dimmat" eller deklarerat variabeln Conn en gång tidigare.

De övriga variabelnamnen som finns där är sådana jag själv skapat bara för att få en bättre överblick av koden och vad den gör.

Du ville att vi skulle "snygga till koden" ;) , så det har jag gjort. :)

Medlem sedan feb. 2003210 inlägg
#8

OK! nu är jag med, TACK! ;)

361 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
225 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)