webForumDet fria alternativet

ja igen: sökfunktion med många fält.

ASP

17 svar · 421 visningar · startad av Lazerzubb

Medlem sedan mars 2000542 inlägg
Frågan#1

Ja först, den som orkar svara: STORT TACK!!!.

Jag har en access databas, det finns dessa fält.
province, city, price, bedr, bathr och type.
Sökfomuläret finns Här

ja nu skulle jag behöva hjälp med en funktion som gör så att detta funkar :e

någon som har något förslag på kod???

Tack på förhand.

Medlem sedan dec. 2000399 inlägg
#2

Något i stil med detta borde väl fungera:

sql = "SELECT * FROM Tabell WHERE province LIKE '%" & Request.Form("province") & "%' OR city LIKE '%" & Request.Form("city") & "%' osv ORDER BY price"
Medlem sedan mars 2000542 inlägg
#3

Nah, det är det som är problemmet det är nog lite klurigare än så.
"Sökaren"
Kan typ söka så här
Det är en hon nu.
Hon väljer "Province" i dropdown menyn, sedan skriver hon in en stad i fältet under.
Hon vill att det ska kosta mellan 100.000-500.000 och väljer därför 100.000 som minimum pris och 500.000 som maximum, sedan väljer hon vad minsta antalet sovrum är men bryr sig inte om badrum, och sedan vill hon bara söka bland villorna.

En liknande funktion

Ja vet mycket komplicerat!!!
Sitter och går igenom en sökning på "sökfunktion" i detta forumet nu; Oj vad många trådar det finns.

Medlem sedan mars 2000542 inlägg
#4

Gör jag det för svårt för mig?
Går det att få en sökfuntion liknande den som jag vill ha med lite mer av den kod som juventus1 visade?

Medlem sedan mars 20015 287 inlägg
#5

Det ska väl inte vara något större problem (om man kan det ;) )
utgår man från koden du har ska du väl till att börja med byta ut OR mot AND och sen måste du fixa till att den tar med < och > än dina Price-värden.

Börjar du knacka lite lär nog LarsG el. ngn annan klippa komma och putsa till det hela åt dig. :)

Medlem sedan mars 2000542 inlägg
#6

Ska börja nu :)

Medlem sedan mars 2000542 inlägg
#7

Så här långt har jag kommit hittils.

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:/databas.mdb"

SQL = "SELECT * From mindb WHERE province LIKE '" & Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")& "%'  **--''--**
AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")& "%' **Inte break i koden**
AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")& "%' **Inte break i koden**
AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")& "%' **Inte break i koden**
AND type LIKE '" & Request.Form("typ")& "%'"
set rs=Connect.Execute(SQL)

if not rs.eof then
do until rs.eof
%>

Vad ska jag rätta till hittils???
Jag har hemliga fält med "bedsh" och "bathsh" som är maximumtal.
Och hur gör man när man vill ha ny rad utan ett att koden slutar fungera??? :stud :r

Medlem sedan mars 20015 287 inlägg
#8
SQL = "SELECT * From mindb WHERE province LIKE '" &_
 Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")&_
 "%' AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")&_
 "%' AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")&_
 "%' AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")&_
 "%' AND type LIKE '" & Request.Form("typ")& "%'"

Det var radbrytningarna det.

Medlem sedan mars 2000542 inlägg
#9

Microsoft VBScript compilation error '800a03ea'

Syntax error

/results.asp, line 71

else
^

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:/mindb"

SQL = "SELECT * From star WHERE province LIKE '" & Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")&_
 "%' AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")&_
 "%' AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")&_
 "%' AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")&_
 "%' AND type LIKE '" & Request.Form("typ")& "%'"

set rs=Connect.Execute(SQL)

if not rs.eof then
do until rs.eof
%><a href="detalj.asp?id=<%=rs("ID")%>"><%=rs("ID")%></A><br><BR>
<%rs.movenext
loop
end if
else
%>Hittade inget.<%
end if

rs.close
set rs=Nothing
Connect.close
set connect=nothing
Medlem sedan mars 20015 287 inlägg
#10
<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:/mindb"

SQL = "SELECT * From star WHERE province LIKE '" & Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")&_
 "%' AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")&_
 "%' AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")&_
 "%' AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")&_
 "%' AND type LIKE '" & Request.Form("typ")& "%'"

set rs=Connect.Execute(SQL)

if not rs.eof then
do until rs.eof

response.write "<a href='detalj.asp?id=" & rs("ID") & "'>" & rs("ID") & "</A><BR><BR>"

rs.movenext
loop

else
response.write "Hittade inget."
end if

rs.close
set rs=Nothing
Connect.close
set connect=nothing

tror jag blir lite bättre.

Medlem sedan mars 2000542 inlägg
#11

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/results.asp, line 63

SQL = "SELECT * From star WHERE province LIKE '" & Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")&_
 "%' AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")&_
 "%' AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")&_
 "%' AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")&_
 "%' AND type LIKE '" & Request.Form("typ")& "%'"
 (Line 63)
set rs=Connect.Execute(SQL)

if not rs.eof then
do until rs.eof

response.write "<a href='detalj.asp?id=" & rs("ID") & "'>" & rs("ID") & "</A><BR><BR>"
Medlem sedan mars 20015 287 inlägg
#12

Kanske ska det vara lite mer %-tecken?

Var är ni alla som kan?

SQL = "SELECT * From mindb WHERE province LIKE '%" & Request.Form("city")& "%' OR city LIKE '%" & Request.Form("city")&_
 "%' AND price BETWEEN '%" &  Request.Form("LPrice")& "%' AND '%" & Request.Form("HPrice")& "%' AND bedr BETWEEN '%" &_
 Request.Form("beds")& "%' AND '%" & Request.Form("bedsh")& "%' AND bathr BETWEEN '%" &_
 Request.Form("baths")& "%' AND '%" & Request.Form("bathsh")& "%' AND type LIKE '%" & Request.Form("typ")& "%'"
Medlem sedan mars 2000542 inlägg
#13

Det är

"%' AND type LIKE '" & Request.Form("typ")& "%'"

Som spökar
Så här ser koden ut nu

If Request.Form("city") <> "" Then
SQL = "SELECT * From star WHERE province LIKE '" & Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")&_
 "%' AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")&_
 "%' AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")&_
 "%' AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")& "%'"

set rs=Connect.Execute(SQL)

if not rs.eof then
do until rs.eof
%><a href="detalj.asp?id=<%=rs("ID")%>"><%=rs("ID")%></A><br><BR>
<%rs.movenext
loop
end if
else
%>Hittade inget.<%
end if

rs.close
set rs=Nothing
Connect.close
set connect=nothing

%>

Den fungerar bra, men så fort jag lägger till den sista delen med "typ" så skiter allt sig.

Medlem sedan juni 200032 967 inlägg
#14

Kontrollera att fältet i tabellen verkligen heter type.

Medlem sedan mars 2000542 inlägg
#15

det heter inte "type" det heter "htype"
:e :birp

Allt fungerar nu.
TACK

Medlem sedan mars 2000542 inlägg
#16

Jag har lite problem här,
Koden vill inte skriva ut några resultat:

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=min.mdb"
If Request.Form("city") <> "" Then
SQL = "SELECT * From star WHERE province LIKE '" & Request.Form("city")& "%' OR city LIKE '" & Request.Form("city")&_
 "%' AND price BETWEEN '" & Request.Form("LPrice")& "%' AND '" & Request.Form("HPrice")&_
 "%' AND bedr BETWEEN '" & Request.Form("beds")& "%' AND '" & Request.Form("bedsh")&_
 "%' AND bathr BETWEEN '" & Request.Form("baths")& "%' AND '" & Request.Form("bathsh")&_
 "%' AND htype LIKE '" & Request.Form("typ")&_
 "%' AND term LIKE '" & Request.Form("sale")&_
 "%' ORDER BY price DESC"

set rs=Connect.Execute(SQL)

mSQL = "SELECT COUNT(*) from star where city LIKE '%" & Request.Form("City") & "%' AND htype LIKE '" & Request.Form("typ")&_
 "%' OR province LIKE '" & Request.Form("City")& "%' AND htype LIKE '" & Request.Form("typ")& "%'"

set rs1=Connect.Execute(mSQL)

%>
<font size="2"> <font face="Verdana, Arial, Helvetica, sans-serif" color="#0968AE">Your 
      search returned 
      <B><% Response.write RS1(0) %></B>
      results</font></font>

<%
if not rs.eof then
do until rs.eof
%>
<table width="57%" border="0" cellspacing="0" cellpadding="0" height="18">
  <tr> 
    <td width="17%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<IMG SRC="picture5.gif" alt="" border="0">
    </td>
    <td width="27%"><font face="Verdana" size="1"><%=rs("City")%><BR><%=rs("Province")%></font></td>
    <td width="12%"><font face="Verdana" size="1"><%=rs("bedr")%></font></td>
    <td width="10%"><font face="Verdana" size="1"><%=rs("bathr")%></font></td>
    <td width="14%"><font face="Verdana" size="1"><%=rs("htype")%></font></td>
    <td width="20%"><font face="Verdana" size="1">&nbsp;&euro;<%=rs("price")%></font></td>
  </tr>
</table>
      
<table width="57%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><img src="line.gif" width="560" height="1"></td>
  </tr>
</table>
<br>
<%rs.movenext
loop
end if
else
%>
Hittade inget. 
<%
end if

rs.close
set rs=Nothing
Connect.close
set connect=nothing

%>

Jag har dessa hidden fält i koden (söksidan)

  <input type="hidden" name="bathsh" value="999">
  <input type="hidden" name="bedsh" value="999">
  <input type="hidden" name="sale" value="Sale">
Medlem sedan mars 20015 287 inlägg
#17

Är det inte lite mycket LIKE samt % samt fnuttar? (') - Beroende på om det är sifferfält el inte i db:n?

Medlem sedan mars 2000542 inlägg
#18

Please explain, inte så haj på asp.

270 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)