Varför inte
AND price (BETWEEN ' " & Request.Form("pricefrom") & "' AND ' " & Request.Form("priceto") & " ')
19 svar · 334 visningar · startad av Ivar
Hej jag igen!
Jag vill söka i databasen med angiven pris i sök formuläret ex. 5000 till 10000
<input type="text" size="7" name="pricefrom">och
<input type="text" size="7" name="priceto">
<input type="submit" value="Search" name="submit">
och SQL frågan:
query = "select * from items "
query = query & " WHERE stad LIKE '%"& request.form("stad") &"%' AND item LIKE '%"& request.form("item") &"%' AND category LIKE '%"& request.form("category") &"%' AND price LIKE '%"& request.form("pricefrom") &"%' AND price LIKE '%"& request.form("priceto") &"%'"
Hur får jag fram önskade sökning?
Med vänlig hälsning/Ivar
Varför inte
AND price (BETWEEN ' " & Request.Form("pricefrom") & "' AND ' " & Request.Form("priceto") & " ')
query = "select * from items " & _
" WHERE stad LIKE '%"& request.form("stad") &"%' " & _
" AND item LIKE '%" & request.form("item") &"%'" &_
" AND category LIKE '%"& request.form("category") &"%'" &_
" AND price between " & request.form("pricefrom") &_
" AND " &request.form("priceto")
Jag förutsätter att kolumnen price är numerisk. (Om den inte är det så borde den vara det.)
Hmm får fel meddelande med LarsG kod!
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'stad LIKE '%%' AND item LIKE '%%' AND category LIKE '%%' AND price betwen 1 AND 50'.
/europa/results1.asp, line 82
Line 82 är senaste.Open query, Connect, 1, 3
Hmm nu funkar men går ej att bläddra page 2, page 3 osv.
Pagin hittar inte nästa sida?
Å det fungerade förstås innan? :OO
Hur ser den koden ut då? Anväder du samma sql-sats för att räkna ut antal sidor ?
Skickar hela koden:
Dim connect, query, senaste, datecreated,category,priceto,pricefrom,betwen
'## -- hur många inlägg ska visas per sida --
intPageSize = 25
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- om ingen querystring med sidvärde hittas, visa då första sidan --
If intPage = "" Then intPage = 1
Function HE(str)
If Len(Trim(str & "")) = 0 Then Exit Function
HE = Server.HTMLEncode(str)
End Function
If (Request.QueryString("item") <> "") Then
query = Request.QueryString("item")
End If
If (Request.QueryString("stad") <> "") Then
query = Request.QueryString("stad")
End If
If (Request.QueryString("category") <> "") Then
query = Request.QueryString("category")
End If
If (Request.QueryString("priceto") <> "") Then
query = Request.QueryString("priceto")
End If
If (Request.QueryString("pricefrom") <> "") Then
query = Request.QueryString("pricefrom")
End If
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set senaste = Server.CreateObject("ADODB.Recordset")
query = "select * from items " & _
" WHERE stad LIKE '%"& request.form("stad") &"%' " & _
" AND item LIKE '%" & request.form("item") &"%'" &_
" AND category LIKE '%"& request.form("category") &"%'" & _
" AND price between " & request.form("pricefrom") &_
" AND " &request.form("priceto")
'## -- hur många poster ska visas per sida --
senaste.PageSize = intPageSize
'## -- öppna och hämta alla records --
senaste.Open query, Connect, 1, 3
If senaste.EOF Then
Response.Write "Det finns inga inlägg."
Else
'## -- vilken sida i recordset uppdelningen ska visas --
senaste.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = senaste.PageCount
'## -- lista alla inlägg som finns i db --
Do Until senaste.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
Response.Write "<tr><td><img src=""bilder/" & senaste("fileName") & """ height='10' width='10'>"
response.write "<td><font size='2'><a href=""detail.asp?item=" & senaste("id") & """>" & senaste("item") & "</a>"
'response.write "<td><font size='2'> Kategori:"
'Response.write eval(senaste("category"))
response.write "<td><td><font size='2'>Datum:" & senaste("datecreated") & ""
response.write "<td><font size='2'>Stad:" & senaste("stad") & ""
response.write "<td><font size='2'color=#FF0000>Pris:</font>" & senaste("price") & " Kr </td></font></tr> "
senaste.MoveNext
Loop
End If
'## -- clean up --
senaste.Close
Set senaste= Nothing
Connect.Close
Set Connect= Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage - 1 & "'><< Föregående</A> "
Else
Response.Write "<< Föregående "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & I & "'>" & I & "</A> "
Else
Response.Write "[ <B>" & I & "</B> ]"
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage + 1 & "'>Nästa >>"
Else
Response.Write "Nästa >>"
End If
End Sub
Om jag tar bort
" AND price between " & request.form("pricefrom") &_
" AND " &request.form("priceto")
då funkar konstigt !
Är det inte bara så att du får så få poster?
Då tror jag att det är något fel i pagehantering som funnits där hela tiden.
Nej då i databasen finns över 1000 inlägg
Jo, men får du så pass många svar vid en sökning utan "price between" etc att det blir flera sidor som sökningen genererar som du även kan komma åt? (page 2, page3 osv)
Ja om jag söker ex. 1000 till 50000 då finns 6 pages och visas åtgången 25
Ok, förstår fortfarande inte hur det kan komma sig att det faktist går att följa länkarna till nästa sida, men det fungerar nog :) Börjar bli lite trött nu.
Lite OT, vad gör denna kod?
If (Request.QueryString("item") <> "") Then
query = Request.QueryString("item")
End If
If (Request.QueryString("stad") <> "") Then
query = Request.QueryString("stad")
End If
If (Request.QueryString("category") <> "") Then
query = Request.QueryString("category")
End If
If (Request.QueryString("priceto") <> "") Then
query = Request.QueryString("priceto")
End If
If (Request.QueryString("pricefrom") <> "") Then
query = Request.QueryString("pricefrom")
End If
Ser lite överflödig ut.
Juste men det är inte samma sida, jag använder samma pagin kod på alla sidor.
Jag håller på att bli färdigt med sälj siten det fattas bara sök tjänsten och förstås att PAGIN funkar.
Föresten har du non bättre kod som fixar detta?
MVH/Ivar
Koden du har är bra, anledningen som jag tror till att pagingen inte fungerar är samma som i den andra tråden. Jag ser inte att du får med dig urvalskriterierna, dina request.form-fält.
Det borde fungera om du "tar med dig dem" på samma sätt som i den andra tråden.
Har du en länk till sidan?
Solbulle du har hjälpt mig många gånger och jag är väldigt tacksam stor TACK. Vad det gäller länken till siten är fortfarande i utvecklings fas men kommer snart på nätet.
Söksidan ville jag fixa så att det funkar med bläddra (pagin) men kan man inte så får det va en så länge.
Detta borde väl fixa paginen: http://www.webforum.nu/showthread.php?s=&postid=527516#post527516