webForumDet fria alternativet

Pricefrom och Priceto

ASP

19 svar · 334 visningar · startad av Ivar

Medlem sedan aug. 2002218 inlägg
Frågan#1
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
Medlem sedan jan. 20022 440 inlägg
#2

Varför inte

AND price (BETWEEN ' " & Request.Form("pricefrom") & "' AND ' " & Request.Form("priceto") & " ')
Medlem sedan dec. 200012 464 inlägg
#3
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.)

Medlem sedan aug. 2002218 inlägg
#4
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
Medlem sedan dec. 200012 464 inlägg
#5

Jag lyckades med att stava fel.

Byt betwen till between.

Medlem sedan aug. 2002218 inlägg
#6

Hmm nu funkar men går ej att bläddra page 2, page 3 osv.
Pagin hittar inte nästa sida?

Medlem sedan mars 20015 287 inlägg
#7

Å det fungerade förstås innan? :OO

Medlem sedan dec. 200012 464 inlägg
#8

Hur ser den koden ut då? Anväder du samma sql-sats för att räkna ut antal sidor ?

Medlem sedan aug. 2002218 inlägg
#9
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
Medlem sedan aug. 2002218 inlägg
#10
Om jag tar bort
 " AND price between " & request.form("pricefrom") &_
" AND " &request.form("priceto")
då funkar konstigt !
Medlem sedan dec. 200012 464 inlägg
#11

Ä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.

Medlem sedan aug. 2002218 inlägg
#12

Nej då i databasen finns över 1000 inlägg

Medlem sedan mars 20015 287 inlägg
#13

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)

Medlem sedan aug. 2002218 inlägg
#14

Ja om jag söker ex. 1000 till 50000 då finns 6 pages och visas åtgången 25

Medlem sedan mars 20015 287 inlägg
#15

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.

Medlem sedan mars 20015 287 inlägg
#16

Tyckte ju att jag kände igen koden....

Medlem sedan aug. 2002218 inlägg
#17

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

Medlem sedan mars 20015 287 inlägg
#18

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?

Medlem sedan aug. 2002218 inlägg
#19

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.

Medlem sedan mars 20015 287 inlägg
#20

Detta borde väl fixa paginen: http://www.webforum.nu/showthread.php?s=&postid=527516#post527516

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)