webForumDet fria alternativet

Visa 1-10

ASP

40 svar · 487 visningar · startad av mhedda

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

Hej!
Var in på ditt forum Vide. Lägger nu in frågan och svaren även här.
Hej!
Jag undrar hur man visar poster 1-10 sedan tex Nästa-Föregående vid en sökning som denna. Koden:
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DSN=acc_mhedda;UID=;PWD="
%> <%

If Request.Form("knapp") = "Sök" Then
SQL = "SELECT * FROM Katalog WHERE Bilar LIKE '"& Request.Form("Bilar") &"%' AND Lan LIKE '"& Request.Form("Lan") &"%' ORDER BY Bilar"
End If
rs.Open SQL, MinCon
MVH Mattis

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

Vide 2000-09-06 14:49:18
Hejsan!

Detta har jag beskrivit i min FAQ för ASP, VBScript på webForum: http://cgi.webforum.nu/wf/arkiv/asp_faq.html#paging

Mattis 2000-09-06 18:00:04
Tackar Vide!
Jag skall pröva.
ByBy Mattis

Mattis 2000-09-06 23:07:57
Hej Vide!
Jag får upp detta felmeddelande när jag provar.
Kompileringsfel i Microsoft VBScript fel '800a03ea'

Syntaxfel

/katalog/katalog_ok.asp, rad 61

If counter > = 10 then
-------------^
Vad kan detta vara
MVH Mattis

Vide 2000-09-06 23:16:21
Byt:
If counter > = 10 then

Mot:
If counter >= 10 then

Sedan kommer du att få ett till felmeddelande... det är fortfarande några buggar i scriptet... :/

? 2000-09-07 12:45:47
Eller
If counter > = 10 then

till

If counter > = 9 then

Mattis 2000-09-07 15:55:03
Hej igen bytte till
If counter >= 10 then
Nu går det bra men nu får jag upp detta
ADODB.Recordset error '800a0cb3'

Object or provider is not capable of performing requested operation.
/kat.asp, line 33

Rad 33 är rstemp.absolutepage = mypage
Så jag antar att det fattas nått i deras server jag ligger på www.freesqlhost.com/
MVH Mattis

------------------
Hedda

Medlem sedan mars 20002 836 inlägg
#2

Hello,

har du provat med att sätta rs.Open till:

rs.Open SQL, MinCon, 1, 3

[redigerat]
Hittade inte ett skapande av ett recordset ngn stans i din kod.
Ovanför rs.Open sätt denna rad:

Set rs = Server.CreateObject("ADODB.Recordset")

[/redigerat]
cya,
PatrikB

------------------
=================================
** ZWGdesign **
=================================

[Redigerat av PatrikB den 08 sep 2000]

Medlem sedan feb. 2000385 inlägg
#3

Hej!
Tackar PatrikB
Set rs = Server.CreateObject("ADODB.Recordset")
Har jag redan i koden men när jag skrev
rs.Open SQL, MinCon, 1, 3
Så visades 5 st sökresultat, men när jag tryckte på sid 2 så dök detta upp

ADODB.Recordset fel '800a0bb9'
Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.
/katalog/katal.asp, rad 24
Och rad 24 är:
rs.Open SQL, MinCon,1,3
ByBy Hedda

------------------
Hedda

Medlem sedan mars 20002 836 inlägg
#4

Hello,

skulle behöva mer kod att kika på för att se hur du har byggt pagingen.
[redigerat]
Är det en sådan här typ av paging du vill ha: VästerviksBK's Gästbok
[/redigerat]

cya,
PatrikB

------------------
=================================
** ZWGdesign **
=================================

[Redigerat av PatrikB den 10 sep 2000]

Medlem sedan feb. 2000385 inlägg
#5

Hej!
Ja precis en sådan paging.
Det som funkar för mig nu är att jag får upp 10 sidor att det står sida 1 av 2, pluss att pjag får 1 och 2 länkade. Men när jag trycker på 2 så visas ADODB.Recordset fel '800a0bb9'
Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.
/katalog/katal.asp, rad 24
Och rad 24 är:
rs.Open SQL, MinCon,1,3
Nog tjatat om det här får du kod:
<%
mypage = Request("whichpage")
If mypage = "" then
mypage = 1
End If
mypagesize = 10

Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DSN=webbkonturen2;UID=;PWD="

If Request.Form("knapp") = "Sök" Then
SQL = "SELECT * FROM Katalog WHERE Foretagsnamn LIKE '"& Request.Form("Foretagsnamn") &"%' AND Lan LIKE '"& Request.Form("Lan") &"%'ORDER BY Foretagsnamn "
End If

rs.Open SQL, MinCon, 1,3

If rs.EOF then
Response.write "Inga träffar vid sökning av ordet " & sok
Else
rs.movefirst
rs.pagesize = mypagesize
maxcount = Cint(rs.pagecount)
rs.absolutepage = mypage
howmanyrecs = 0
howmanyfields = rs.fields.count -1
Do While Not RS.EOF AND howmanyrecs < rs.pagesize
counter = counter + 1
If counter mod 2 = 0 then
color = "FFFFFF"
Else
color = "FFF0C8"
End If
%>
<tr bgcolor="<%=color%>">
<td width="68%" height="22"><A HREF=<%=Replace(rs("Hemsida")," ","+")%> target="blank"><%=Replace(rs("Foretagsnamn")," ","_")%></A>
</td>
<td width="32%" height="22"><%=rs("Lan")%> <%rs.movenext
howmanyrecs = howmanyrecs + 1
Loop
rs.close
Set rs = nothing
%></td>
<tr>
<td width="68%" align="left" valign="bottom" ><%
If maxcount <> 0 then
response.write "sida " & mypage & " av " & maxcount & "<br>" & sidor:
pad = "0"
scriptname = request.Servervariables("script_name")
for counter = 1 to maxcount
If counter >= 10 then
pad = ""
End If
ref = "<a href='" & scriptname & "?whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "
response.write ref & " "
if counter mod 10 = 0 then
response.write "<br>"
End If
Next
End If
End If
%>
ByByHedda

------------------
Hedda

Medlem sedan dec. 19996 721 inlägg
#6

Det beror på att när du klickar vidare så får skriptet inga sökargument (Bilar och Lan)

Byt till:

SQL = "SELECT * FROM Katalog WHERE Bilar LIKE '"& Request("Bilar") &"%' AND Lan LIKE '"& Request("Lan") &"%' ORDER BY Bilar"

och

ref = "<a href='" & scriptname & "?Bilar=" & request("Bilar") & "&Lan=" & request("Lan") & "&whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan feb. 2000385 inlägg
#7

Hej och tack emission, men det verkar som om den fortfarande inte gillar rad 24.
ADODB.Recordset fel '800a0bb9'
Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.
/katalog/katal.asp, rad 24

Och rad 24 är:
rs.Open SQL, MinCon,1,3

Jag vet inte riktigt vad 1,3 gör för något men om jag tar bort dom så blir det så här:
ADODB.Recordset fel '800a0cb3'

Åtgärden som programmet begärt stöds inte av leverantören.

/katalog/katal.asp, rad 35
35 är denna
rs.absolutepage = mypage

------------------
Hedda

Medlem sedan feb. 2000385 inlägg
#8

Hej igen!
Nu visas det inget felmeddelande men inget annat visas heller tyvärr.
Kan det vara något med denna här raden:
ref = "<a href='" & scriptname & "?Foretagsnamn=" & request("Foretagsnamn") & "&Lan=" & request("Lan") & "&whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "
MVH Hedda

------------------
Hedda

Medlem sedan feb. 2000385 inlägg
#9

Hej!
Nu har jag kommit till att dom 10 första visas på en sida.
Sida 1 av 2 Sidor:
Länkar 1 2 länkarna blir så här
<a href='/katalog/katal.asp?Foretagsnamn=&Lan=&whichpage=2&pagesize=10'>02</a>

Men trycker man på 2 så visas en sida som till synes är tom men om man tittar på visa källa så visar den söksidan men utan resultat. Vad kan det vara för fel?
Hälsningar Hedda

------------------
Hedda

Medlem sedan juni 200032 967 inlägg
#10

i länken skickar du inte med företagsnamn och län (antar jag att det är), det kan nog vara bra att ha med.

------------------
<A HREF="http://www.cartman.nu" TARGET=_blank>
det man inte minns har inte hänt.
hit med en berka!</A>

Medlem sedan feb. 2000385 inlägg
#11

Tackar det kan du ha rätt i men hur skriver jag i koden. Denna kod har jag nu:
SQL = "SELECT * FROM Katalog WHERE Foretagsnamn LIKE '"& Request("Foretagsnamn") &"%' AND Lan LIKE '"& Request("Lan") &"%'ORDER BY Foretagsnamn "
-------------------------------------
Och denna:
ref = "<a href='" & scriptname & "?Foretagsnamn=" & request("Foretagsnamn") & "&Lan=" & request("Lan") & "&whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "
response.write ref & " "
Har även provat med request.form
Och Request.QueryString
GET och POST alltså.
Hur göra.
MVH Hedda

------------------
Hedda

Medlem sedan mars 20002 836 inlägg
#12

hello,

Testa med detta:

ref = "<a href='" & scriptname & "?Foretagsnamn=" & Server.URLEncode(request("Foretagsnamn")) & "&Lan=" & Server.URLEncode(request("Lan")) & "&whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "

När man skickar med info i request.querystring så måste den vara URLencoded. Annars bryts strängen så fort det kommer ett mellanslag (tomrum) i querystringen. tex "Stockholms län"

Hoppas nu att det är det felet,

cya
PatrikB

------------------
=================================
** ZWGdesign **
=================================

Medlem sedan feb. 2000385 inlägg
#13

Hej och tack men tyvärr funkar det inte ändå. Jag har för mig att det var någon annan på detta forum som fick det att funka med Vides kod från faq. Jag är dessutom inte den proffsigaste på asp men försöker lära mig så det kan ju vara något enkelt fel. Vad vet jag.
Men den hittar alltså dom första 10 så det måste väl kanske vara där i länken någonstans kan man tänka. Den vägrar ju att hänga på företag och län.
MVH Hedda

------------------
Hedda

Medlem sedan feb. 2000385 inlägg
#14

Hej igen!
Någon som har någon aning vad det kan vara? Länken blir ju fortfarande så här:
<a href='/katalog/katal.asp?Foretagsnamn=&Lan=&whichpage=2&pagesize=10'>02</a>
Det verkar inte spela någon roll hur jag skriver. Trött och ser i kors.
Tacksam för svar.
Hej från Hedda

------------------
Hedda

Medlem sedan dec. 19998 577 inlägg
#15

Testa att skriva ut Request("foretagsnamn") och se om den innehåller något... i länken ser det inte ut så...

------------------
Kom hem till mig...

Medlem sedan feb. 2000385 inlägg
#16

Hej Vide!
Jag vet inte riktigt vad du menar men jag skrev in att den skulle visa 20 st itaget och det gjorde den så den hittar alla poster i databasen.
MVH Hedda

------------------
Hedda

Medlem sedan dec. 19998 577 inlägg
#17

Jag menar att om du går efter PatrikBs kod här ovan så verkar det som om Request("foretagsnamn") inte innehåller något värde... skriv ut den:
Response.write Request("foretagsnamn")

och se om du får ut något...

------------------
Kom hem till mig...

[Redigerat av Vide den 15 sep 2000]

Medlem sedan feb. 2000385 inlägg
#18

Nää det verkar inte finnas något att visa. Vad kan det vara?
MVH Hedda

------------------
Hedda

Medlem sedan dec. 19998 577 inlägg
#19

Okej, hur anger du företagsnamnet? är det via ett formulär eller en länk?

Då skall ju värdet skickas med därifrån, och du hämtar det med Request("foretagsnamn")... gick du den vägen?

------------------
Kom hem till mig...

Medlem sedan feb. 2000385 inlägg
#20

Hej Vide!
Jag hämtar via formulär.
Man söker på företag och län.
Sen får man upp sidan med koden som jag skickade in tidigare.
SQL = "SELECT * FROM Katalog WHERE Foretagsnamn LIKE '"& Request("Foretagsnamn") &"%' AND Lan LIKE '"& Request("Lan") &"%'ORDER BY Foretagsnamn "
Och länk:
ref = "<a href='" & scriptname & "?Bilar=" & request("Bilar") & "&Lan=" & request("Lan") & "&whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "

Har även provat:

ref = "<a href='" & scriptname & "?Foretagsnamn=" & Server.URLEncode(request("Foretagsnamn")) & "&Lan=" & Server.URLEncode(request("Lan")) & "&whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "
Vad göra
MVH Hedda

------------------
Hedda

267 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)