webForumDet fria alternativet

access hjälp?

ASP

41 svar · 965 visningar · startad av cupy · sida 2 av 3

Frågan, av cupy

Jag är en nybörjare på ASP men har lyckats knåda ihop ett forum. Problemet är att jag måste använda pagecounter som gör att min script funkar inte eller bara delvis. Exakt - När man väljer en land på listan hämtas den från db som vanligt och listar ut alla info om medlemmar från det valda landet. Som uppdelade på sidor. Den första sidan stämmer, men andra osv, blandar ihop alla länder. Alltså de

Läs frågan i sin helhet →
Medlem sedan apr. 2002299 inlägg
#21

Exakt vad behöver du?

Medlem sedan dec. 1999707 inlägg
#22

Ursäkta mig, var lite snurrig i kolan...

Testa den här koden:

<FORM name="Land" action="j.asp" method="get">
<select name="sok" onchange="submit();"> 
	<option value=non >-------------------------</option> 
	<option value=Norge>Norge</option> 
	<option value=Danmark>Danmark</option> 
	<option value=Sverige>Sverige</option> 
	<option value=Tyskland>Tyskland</option> 
	<option value=italia>Italia</option> 
	<option value=Holland>Holland</option> 
</select>
</form> 

<%

Dim strSok

strSok =	Request.QueryString("sok")

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

Set rs = Server.CreateObject("ADODB.RecordSet") 
strSQL = "Select * From Tabell WHERE Land LIKE '%" & strSok & "%' ORDER BY id DESC" 
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("databas.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>" 
	Do While Not rs.EOF And intRecCount > 0
%> 
		<!-- HÄR SKRIVER JAG UT TEXTEN I TABELLEN SOM JAG HÄMTADE MED SQL SATSEN --> 
<%
		intRecCount = intRecCount - 1 
		rs.MoveNext 
	Loop 
End If 
rs.Close 
Set rs = Nothing 

Response.Write "<p>Gå til sida " 
For intNum = 1 To intPageCount 
	Response.Write "<a href='j.asp?page=" & intNum & "&sok=" & Server.URLEncode(strSok) & "'>" & intNum & "</a> " 
Next 

Response.Write "<p>" 
If Clng(intPage) > 1 Then 
	Response.Write "<a href='j.asp?page=" & intPage - 1 & "&sok=" & Server.URLEncode(strSok) & "'>&lt;&lt;</a>" 
Else 
	Response.Write "&lt;&lt;" 
End If 

If Clng(intPage) < Clng(intPageCount) Then 
	Response.Write "<a href='j.asp?page=" & intPage + 1 & "&sok=" & Server.URLEncode(strSok) & ">&gt;&gt;</a> " 
Else 
	Response.Write "&gt;&gt;" 
End If 

%>

Har ändrat formen till "GET".
Ändrat page-länkarna så de inkluderar sökvillkoret ("sok").
OBS! Tog bort utrenderingen av tabellen i Do..Loop.

Medlem sedan dec. 1999707 inlägg
#23

För övrigt så behöver du inte använda dig av "inteRecCount"-variabeln. Om du sätter PageSize:n till något så blir recordset:et Eof när det når slutet på sidan. Dvs din Do..Loop skulle då se ut som följer:

If Not (rs.BOF Or rs.EOF) Then 
	rs.PageSize = 10 
	rs.AbsolutePage = intPage 
	intPageCount = rs.PageCount 
	Response.Write "<p><b>Side " & intPage & " af " & rs.PageCount & "</b></p>" 
	Do Until rs.Eof
%> 
		<!-- HÄR SKRIVER JAG UT TEXTEN I TABELLEN SOM JAG HÄMTADE MED SQL SATSEN --> 
<%
		rs.MoveNext 
	Loop 
End If

Tänkte bara du vill veta... :)

Medlem sedan apr. 2002299 inlägg
#24

Tyvärr det hjälpte inte t.o.m blev sämre fast jag får inte fel meddelande, allting funkar fast inte som den skulle.
Nu hämter inte nånting från db utan visar hela tiden sammaresultat och den andra tips du gav mig gör att paging försvinner, den listar ut allt och kan inte begränsa till t ex att lista10 eller 20 stycken

Medlem sedan dec. 1999707 inlägg
#25

Sorry. Hade bestämt för mig att det fungerade så. Ber tusen gånger om ursäkt! Får man väl jämföra recordsetets page.

...
Do Until rs.Eof Or rs.AbsolutePage <> intPage
...
Loop

Testa även att byta ut de kodrader som hämtar sidonumret.

intPage = Request.QueryString("page")
If Len(intPage) = 0 Then 
	intPage = 1 
End If
Medlem sedan apr. 2002299 inlägg
#26

nej , det hjälpte inte heller...

Medlem sedan dec. 1999707 inlägg
#27

Svårt att felsöka när man inte sitter vid skärmen och ser resultatet. :(

Medlem sedan apr. 2002299 inlägg
#28

Ja jag vet o tack för hjälp

Medlem sedan apr. 2002299 inlägg
#29

Ja jag vet o tack för hjälp
Tack för alla andra oxå som ville hjälpa till men som jag ser det går inte eller ingen vet hur det går till så jag tänkte om någon har kanske en pager som skulle fungera ihopp med min script så...
this is it:

<FORM name=Land action = sammasida.asp method=post>
<select name="sok" onchange="submit();">
<font face="verdana, Helvetica" size=2>
<option value=non >-------------------------</option>
<option value= Norge>Norge</option>
<option value= Danmark>Danmark</option>
<option value= Sverige>Sverige</option>
<option value= Tyskland>Tyskland</option>
<option value= italia>Italia</option>
<option value=Holland>Holland</option>
</select></form>

<table><tr>
<td><%= FormatDateTime(Rs("datum"),2)%><td> <a href="visa3.asp?id=<%=TRIM(Server.HTMLEncode(Rs("ID"))) %>"> <% =TRIM(Server.HTMLEncode(Rs("fnamn")))%> </a> </td>
<td> <% =TRIM(Server.HTMLEncode(Rs("Land")))%></td>
</tr>
</table>

Kan någon sätta den här i en pager som funkar?

Medlem sedan apr. 2002299 inlägg
#30

Ingen som vet hur gör man det?

Medlem sedan juni 200032 967 inlägg
#31

Svarar väl förmodligen inte på frågan, men ditt formulär saknar infernaliskt många citationstecken, och värdena i selectboxen är inte korrekta då de inleds med ett mellanslag.

Grunden i att få någonting sånt här att fungera är ju att datat från formuläret är korrekt.

Skit in, skit ut, som man brukar säga. ;)

<FORM name="Land" action ="sammasida.asp" method="post"> 
<select name="sok" onchange="submit();"> 
<font face="verdana, Helvetica" size=2> 
<option value="non" >-------------------------</option> 
<option value="Norge">Norge</option> 
<option value="Danmark">Danmark</option> 
<option value="Sverige">Sverige</option> 
<option value="Tyskland">Tyskland</option> 
<option value="italia">Italia</option> 
<option value="Holland">Holland</option> 
</select></form>

Mvh,

Medlem sedan apr. 2002299 inlägg
#32

Visst anders jag håller med dig men problemet är att allting funkar så länge jag klickar på sidan 2 eller näxt och då listar inte ut längre som den skulle utan hämtar allt från db, listar ut alla inlägg. Helt enkelt den hinner inte med i svängen när man klickar näxt ... så felet ligger i paging script ellerhur?

MVH /Cupy

Medlem sedan juni 200032 967 inlägg
#33

Hur ser sid-länkarna / nextlänken ut när den kommer till läsaren? Finns all information med där?

Kör du nu med metoden GET i formuläret?

Medlem sedan apr. 2002299 inlägg
#34

Det står allt på första sidan längst upp om du menar det
......ja det finns med all info

Medlem sedan juni 200032 967 inlägg
#35

Jag har ändrat till metoden get (igen ;) ) och lagt till sökordet (landet) i sidlänkarna.

Prova detta:

<FORM name="Land" action ="j.asp" method="get"> 
<select name="sok" onchange="submit();"> 
<font face="verdana, Helvetica" size=2> 
<option value="non">-------------------------</option> 
<option value="Norge">Norge</option> 
<option value="Danmark">Danmark</option> 
<option value="Sverige">Sverige</option> 
<option value="Tyskland">Tyskland</option> 
<option value="italia">Italia</option> 
<option value="Holland">Holland</option> 
</select></form> 
<% intPage = Request("page") 
sok = Request.Querystring("sok")
If isNumeric(intPage) = False Or intPage < 1 Then 
intPage = 1 
End If 
Set rs = Server.CreateObject("ADODB.RecordSet") 
strSQL = "Select * From Tabell WHERE Land LIKE '%" & sok & "%' ORDER BY id DESC" 
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("databas.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>" 
Do While Not rs.EOF And intRecCount > 0 %> 
<!-- HÄR SKRIVER JAG UT TEXTEN I TABELLEN SOM JAG HÄMTADE MED SQL SATSEN --> 
<table><tr> 
<td><%= FormatDateTime(Rs("datum"),2)%><td> <a href="visa3.asp?id=<%=TRIM(Server.HTMLEncode(Rs("ID"))) %>"> <% =TRIM(Server.HTMLEncode(Rs("fnamn")))%> </a> </td> 
<td> <% =TRIM(Server.HTMLEncode(Rs("Land")))%></td> 
</tr> 
</table> 
</table> 
<!-- Tabell slut --> 
<% intRecCount = intRecCount - 1 
rs.MoveNext 
Loop 
End If 
rs.Close 
Set rs = Nothing 
Response.Write "<p>Gå til sida " 
For intNum = 1 To intPageCount 
Response.Write "<a href=""j.asp?page=" & intNum & "&sok=" & Server.URLEncode(sok) & """>" & intNum & "</a> " 
Next 

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

Response.Write " " 

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

Mvh,

Medlem sedan apr. 2002299 inlägg
#36

Det blev error

Error Type:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC driver does not support the requested properties.
/asp/n4/zzzz/real/re/test/j.asp, line 38

--->rs.Open strSQL, strDSN, 1

Medlem sedan juni 200032 967 inlägg
#37

Prova att byta

rs.Open strSQL, strDSN, 1

till

set objConn = Server.CreateObject("ADODB.Connection")
objConn.open strDSN
rs.Open strSQL, objConn, 3, 3

Mvh,

Medlem sedan apr. 2002299 inlägg
#38

det blev följande
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/asp/n4/zzzz/real/re/test/j.asp, line 40

-->rs.Open strSQL, objConn, 3, 3

Medlem sedan juni 200032 967 inlägg
#39

Stämmer SQL-frågan då?
Heter tabellen Tabell, finns där fält som heter Land och id?

Dubbelkolla! :)

Medlem sedan apr. 2002299 inlägg
#40

Jag gjorede en miss,
SÅLÄNGEFUNKAR ALLT!!!!! Perfekt!
10000 Tack Anders!
Jag tycker att du borde få ett Nobelpris!

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)