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"
17 svar · 421 visningar · startad av Lazerzubb
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.
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"
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.
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.
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?
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. :)
Ska börja nu :)
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
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.
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
<% 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.
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>"
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")& "%'"
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.
Kontrollera att fältet i tabellen verkligen heter type.
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%">
<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"> €<%=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">
Är det inte lite mycket LIKE samt % samt fnuttar? (') - Beroende på om det är sifferfält el inte i db:n?
Please explain, inte så haj på asp.