Du får nog secifiera dig lite? Är bara ett formulär i html du behöver hjälp med eller är det kopplingen till databasen? :)
/JANspeed
13 svar · 374 visningar · startad av Mia_3
Ska göra ett sökformulär som hämtar info i en accessdatabas. Databasen är klar men nu ska jag alltså börja med sökformuläret o kommer inte "igång" med programmeringen. Man kan söka på "valfria" ord och på förvalda ämnen. Man kan allstå ställa in flera sökkreterier.
Hjäääälp nån..
Du får nog secifiera dig lite? Är bara ett formulär i html du behöver hjälp med eller är det kopplingen till databasen? :)
/JANspeed
Som ett exempel kan man tänka att du har en tabell som innehåller dels en typkolumn och dels en namnkolumn. Typkolumnen innehåller de förutbestämda ord som man kan söka på och på namnkolumnen kan man söka fritt.
De sökord som är förutbestämda är ju lämpliga att ha i en dropdown. För att hämta dom från databasen och bygga en drop-down kan det se ut så här
<%
set connect = server.createobject("adodb.connection")
connect.open "dsn"
set rs = connect.execute("select distinct fldType from persons")
response.write "<select name='options'>"
selected = "selected"
while not rs.eof
response.write "<option value='" & rs("fldType") & "' " & selected & ">" & rs("fldType") & "</option>"
selected = ""
rs.movenext
wend
response.write "</select>"
rs.close
connect.close
%>
Sen så kan man lägga till ett vanligt textfält för sökningen och en submit-knapp
<form action='search.asp' method='POST'>
<input type='TEXT' name='fritext'>
<input type='SUBMIT' value='Sök'>
sedan på sidan search.asp så kan du bygga ihop din select fråga
set connect = server.createobject("adodb.connection")
connect.open "dsn"
sql = "select * from persons where fldType = '" & request.form("options") & "' and fldName like '%" & replace(request.form("fritext"),"'","''") & "%'"
set rs = connect.execute(sql)
while not rs.eof
'visa poster
rs.movenext
wend
rs.close
connect.close
------------------
essentitia preter non sans multiplicandum
Jag har 2 dropdownboxar plus 2 textfält. Sen några förvalda alternativ som de kan klicka på. Och jag har ju själva formuläret hur det ska se ut, det är gjort i DW men nu ska jag programmera in själva sökfunktionen. Alltså hämta info från accessdatabasen till ny sida. Alla sökkreterier måste stämma in för att en rad i databasen skall visas.
TACK för att ni har svarat.
Så..ja det är väl det, själva kopplingen till databasen jag behöver hjälp med.
Vissa av experterna kommer väl att ramla ihop när de ser min kod, men den fungerar iaf! :-)
Men den kanske kan hjälpa dig att komma igång?
<font class=text>Sökresultat . . .
</font>
<p>
<TABLE cellSpacing=0 cellPadding=1 align=center border=0>
<TBODY>
<TR>
<TD class=text vAlign=top align=right>
<TABLE cellSpacing=1 cellPadding=0 bgColor=#000000 border=0>
<TBODY>
<TR>
<TD bgColor=#fdd8ac>
<TABLE cellSpacing=0 cellPadding=1 width=160 border=0>
<table border=0 cellspacing=1 bgcolor=#CCCCCC width="600">
<tr>
<td class=textStats valign=top bgColor=#fdd8ac><font face=verdana size=2>
<table border=0>
<tr>
<td class=text><a href="index.asp?filmer=sok&sortera=titel">Titel</a></td>
<td class=text><a href="index.asp?filmer=sok&sortera=kategori">Kategori</a></td>
<td class=text>Info</td>
<td class=text><a href="index.asp?filmer=sok&sortera=tid">Tid</a></td>
<td class=text><a href="index.asp?filmer=sok&sortera=storlek">Storlek</a></td>
<td class=text>Format</td>
<td class=text>CD</td>
<td class=text><a href="index.asp?filmer=sok&sortera=recension">Recension</td></tr>
<%
if request.querystring("sortera") = "" Then sortorderval = "id"
if request.querystring("sortera") = "titel" Then sortorderval = "titel"
if request.querystring("sortera") = "kategori" Then sortorderval = "kategori"
if request.querystring("sortera") = "tid" Then sortorderval = "tid"
if request.querystring("sortera") = "storlek" Then sortorderval = "storlek"
if request.querystring("sortera") = "recension" Then sortorderval = "recension"
strtitel = Trim(Request.Form("Titel"))
strskadis = Trim(Request.Form("skadis"))
strkategori = Trim(Request.Form("kategori"))
strSQL = "SELECT * FROM Filmer WHERE Titel LIKE '%" & strtitel & "%'"
if Request.form("skadis") <> "" then
strSQL = strSQL & " AND skadis LIKE '%" & strskadis & "%'"
end if
if Request.form("kategori") <> "" then
strSQL = strSQL & " AND kategori LIKE '%" & strkategori & "%'"
end if
strSQL = strSQL & " ORDER BY " & sortorderval & ""
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("filmer.mdb")
Conn.Open DSN
Set rs = Conn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF
id = rs("id")
titel = rs("titel")
skadis = rs("skadis")
kategori = rs("kategori")
Om_filmen = rs("Om_filmen")
Tid = rs("tid")
storlek = rs("storlek")
Format = rs("format")
antal_cd = rs("antal_cd")
recension = rs("recension")
Response.Write "<tr>"
Response.Write "<td><a href=""index.asp?filmer=visa_info&id="& id & """>"& titel & "</a></td>"
Response.Write "<td>"& kategori & "</td>"
if rs("om_filmen") <> "" Then
Response.write "<td><img src=""filmer_web/ruta_kryssad.gif""></td>"
else
Response.write "<td><img src=""filmer_web/ruta_tom.gif""></td>"
end if
Response.Write "<td><i>"& Tid & "</i></td>"
Response.Write "<td>"& Storlek & "Mb</td>"
Response.Write "<td>"& format & "</td>"
Response.Write "<td>"& Antal_cd & "</td>"
if rs("recension") <> "" Then
Response.write "<td><img src=""filmer_web/ruta_kryssad.gif""></td>"
else
Response.write "<td><img src=""filmer_web/ruta_tom.gif""></td>"
end if
Response.Write "</tr>"
rs.MoveNext
Loop
Else
Response.Write "<SPAN>Hittade inget som matchade din sökning.</SPAN>"
End If
Conn.Close
Set Conn = Nothing
%>
</table>
</TBODY></TABLE></TD></TR></TBODY></TABLE>
------------------
Who is General Failure and why is he reading Drive C?
Okänd
Som jag ser det så e det ett funktionell Sök motor rätt?? inte kunde någon ge mej koder till det nene =))) skoja bara
------------------
//voigtan
:: voigtan.org
"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck
Tack det var snällt, nu vet jag vad jag ska göra i kväll ialla fall.
Inferis -> Kan du hjälpa mej med en enkel sök-funktion till mej? kontakta mej på ICQ isåfall: 6626598
------------------
//voigtan
:: voigtan.org
"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck
Jag har gjort ett formulär i DW där sökresultatet skall komma från flera olika tabeller i databasen. Hur ska jag nu programmera detta? Här är den nu existerande koden:
Hjäääälp..
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="" enctype="multipart/form-data">
<div align="center">
<p><b>Sök bland Ljunvrets resors resemå</b><b>l</b></p>
<p><b>Land</b>
<select name="landselect">
<option value="1">Sverige</option>
<option value="2">Danmark</option>
<option value="3">Norge</option>
<option value="4">Tyskland</option>
<option value="5">Polen</option>
<option value="6">Tjeckien</option>
<option value="7">Holland</option>
<option value="8">Österrike</option>
</select>
</p>
<p align="center"><b> Reslängd 1 till 7 dagar
<input type="text" name="reslängdtext" size="5" maxlength="1">
</b></p>
<p align="center"><b>Avresa, Månad
<select name="avresaselect">
<option value="mars">Mars</option>
<option value="april">April</option>
<option value="maj">Maj</option>
<option value="juni">Juni</option>
<option value="juli">Juli</option>
<option value="augusti">Augusti</option>
<option value="september">September</option>
<option value="oktober">Oktober</option>
<option value="november">November</option>
<option value="december">December</option>
</select>
</b></p>
<p align="center"><b>Pris
<select name="prisselect">
<option value="1">300 > 1000</option>
<option value="2">1000 >1500</option>
<option value="3">1501 >2000</option>
<option value="4">2001 >2500</option>
<option value="5">2501 >3000</option>
<option value="6">3001 > 3500</option>
<option value="7">3501 > 4000</option>
<option value="8">4001 > 4500</option>
<option value="9">4501 > 5000</option>
<option value="10">5001 > 5500</option>
<option value="11">5501 > 6000</option>
</select>
</b></p>
<p align="center">
<input type="submit" name="Submit" value="Sök">
<input type="reset" name="Submit2" value="Rensa">
</p>
<p align="center"> </p>
</div>
</form>
</body>
</html>
voigtann1:
Är det inte bättre att vi löser ditt problem här på forumet?
Då kan ju även andra användare ta nytta av informationen.
------------------
Who is General Failure and why is he reading Drive C?
Okänd
Mia_3:
Om du kollar på min kod så ser du att mina fält i db:n heter:
id
titel
skadis
kategori
Om_filmen
Tid
storlek
Format
antal_cd
recension
*Glöm tabellen antal_cd! Jag har inte en enda DivX!*
Tabellen heter filmer och databasen heter filmer.mdb (ligger i samma mapp som aspsidan)
Jag använder denna sida för att söka igenom vilka jag har. Men jag är inte säker på om den koden är så bra att köra med flertalet användare.
Sen tror jag inte att din kod:
<input type="text" name="reslängdtext" size="5" maxlength="1"> är så bra. Man bör undvika åäö på namnet.
------------------
Who is General Failure and why is he reading Drive C?
Okänd
Hej Infernis,
Undrar om du har en eller flera tabeller. Jag har flera tabeller. Tack för all hjälp jag fått hittils.