Anton_LMedlem sedan mars 200584 inlägg Hej!
Jag håller på att göra en enkel kopia av en sökfunktion som ska likna blockets. Jag har ett formulär som innehåller:
Sökord
Kategori
Län
Jag har lyckats så långt att jag kan söka på ord och få upp resultat på min resultatsida, men nu vill jag även kunna nicha sökningarna med län och kategorival!
Min SQL-kod är
SQL = "Select * from annonser Where rubrik LIKE '%" & Request.Form("sokord")& "%'"
Hur ska jag fortsätta för att få in län? AND län=Request.Form("län") osv... ??
Eller kommer detta AND syfta på rubriken??
Min HTML kod med sökformuläret:
<FORM METHOD="POST" ACTION="sok.asp">
<input type="text" name="sokord" value="sokord" class="rutan3">
<select name="kategori">
<option value="kategorier">Kategorier</option>
<option value="Bilar">Bilar</option>
<option value="Cyklar">Cyklar</option>
<option value="Skor">Skor</option>
</select>
<select name="Län">
<option value="Län">Län</option>
<option value="Östergötland">Östergötland</option>
<option value="Norlland">Norrland</option>
<option value="Skåne">Skåne</option>
</select>
<input type="submit" name="submit" value="Sök" class="rutan4">
</FORM>
Använder ASP som scriptspråk.
Tack :-)
Om jag har förstått dig rätt, så är det precis som du har gjort, men att du lägger till AND län=Request.Form("kategori") i din SQL-fråga, eftersom din DropDownList heter kategori
Tänkte lite fel i mitt förra inlägg, sorry. Funkar det inte såhär?
SQL = "Select * from annonser Where rubrik LIKE '%" & Request.Form("sokord")& "%' AND Län='" & Request.Form("Län") "'"
Kan inte klassisk Asp, men kan inte riktigt se problemet. Sen så ska du inte ha specialtecken i koden, som åäö.
Anton_LMedlem sedan mars 200584 inlägg Hej!
ÅÄÖ är jag medveten om, ska fixa till det så allt heter som den första variabeln "sok"
Det är säkert inte svårt, jag är bara dum ibland xD Asp:n tror jag nog jag har koll på, var bara själva SQL-frågan jag undra om, men ska testa nu och se vad som händer. Återkommer :)
Tipsar om http://www.w3schools.com/
Jättebra som referens när man undrar nånting :)
Anton_LMedlem sedan mars 200584 inlägg Hej!
Det funkade med en liten lätt modifiering, slut på programsats & :moose
SQL = "Select * from annonser Where rubrik LIKE '%" & Request.Form("sokord")& "%' AND lan='" & Request.Form("lan") & "'"
Tack för hjälpen där! :)
(Vem behöver w3school när du svarade på 5 minuter med en lösning :p) :bire
newseedMedlem sedan maj 2010117 inlägg
SQL = "Select * from annonser Where rubrik LIKE '%" & Request.Form("sokord")& "%' AND lan='" & Request.Form("lan") & "'"
Jag skulle bara vilja varna dig för att ovanstående kod har svaghet för SQL-injection:
http://en.wikipedia.org/wiki/SQL_injection
Jag föreslår att du tar ut Request.Form("lan") och Request.Form("sokord") i egna variabler och dubbelkollat att den endast innehåller något av de värde du förväntar dig att den skulle innehålla. Ett grundläggande test man bör göra på all indata är att se till att använda escape-tecken framför '.
Om någon söker i din databas på sökordet: "%'; DROP TABLE annonser; --" så har du blivit av med hela din tabell (och även om du skulle ha bra säkerhet i SQL-servern som stoppar detta kan de nog ställa till mycket ofog med radering av annonser).