Sökmotor-hjälp

ASP

17 svar · 397 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Trådstart#1

Okey efter mycket om och men har jag skaffat mej en sök motor kod =) men den e begränsad
här är den:
default.asp

<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<form name="users" action="sok.asp" method="post">
Namn:<br>
<input type="text" size="30" name="SPEL">

<input type="submit" value="VAR ÖVERLÄGSEN ALLA ANDRA!" id=med name=med>
</form>

sen kommer resultatet:


<%
SPELS = request.form("Spel")
set conn = server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("database/data.mdb")
sql = "select * from SPEL where ID = " & SPELS
set recset = conn.Execute(sql)
recset.Movefirst
response.write recset("speltitle")
Do Until recset.eof
recset.MoveNext
loop
%>
</select>

Min fråga är enkel: Om man typ Söker på Mari så ska den visa allt med:
Mario 1,2,3 etc etc
även om man skriver ari bara ska den ta det från databasen... och den ska ju förstås loopa alla resultat om det är mer än 1 =)

Medlem sedan dec. 200012 464 inlägg
#2

Innehåller kolumnen id namnet på spelen?
Har du inte någon namn-kolumn?

sql = "select * from SPEL where speltitel like '%" & SPELS & "%'"
Medlem sedan juni 20019 519 inlägg
#3

Om det inte finns något för typ:
Zelda

fråga till: Går det med mellanslag?
typ: Mario 64
Fattar den då att det e mario 64
eller måste man skriva: mario64
eller kvittar det?

Medlem sedan dec. 200012 464 inlägg
#4

Om du har lagrat Mario 64 i databasen så kommer man inte att hitta det om man söker på Mario64 Blanka har betydelse i sökningen.

Medlem sedan juni 20019 519 inlägg
#5

hur gör man så att den inte mellan slag ska göra något:

typ om någon råkar söka på mario64 och det är mario 64

då får man ju error

Jag behöver en kod för det... det blir bara error om man inte har det i databasen.

Medlem sedan dec. 200012 464 inlägg
#6

För att du inte skall få något fel om det inte finns något så får du skriva så här

if recset.eof then
   response.write "Det fanns inget som uppfyllde sökvillkoret"
else
Do Until recset.eof
response.write recset("speltitle") & "<br>"
recset.MoveNext
loop
end if

Det där med blanka är inte så enkelt att lösa.

Medlem sedan juni 20019 519 inlägg
#7

Fungera bra.. men om jag inte skriver in något så kommer alla titlar i hela databasen =)

sen behöver jag fortafarande med mario 64 och mario64

Medlem sedan nov. 20011 551 inlägg
#8

testa
sql = "select * from SPEL where ID LIKE '%"& request("Spel")
&"%'"

då får du allt som stämmer in på det du skickar, ari för mario etc, de kan dock vara lite sega att köra om du har stora tabeller, tänk på det :)

enkelt gjort kan du ju skicka med en kryssruta "exakt sökning" om du vill och sedan ha din sql sträng på om det villkoret är uppfyllt, annars köra liknande den jag skrev ovan

Medlem sedan dec. 200012 464 inlägg
#9

men om jag inte skriver in något så kommer alla titlar i hela databasen =)

Ja, så blir det,vad vill du skall hända då?

Problemet med blanka är inte så enkelt att lösa med sql. Du kan ju komma förbi det genom att skapa en tabell med synonymer där du lagrar både mario 64 och mario64 och använda den när du söker. Sen så har du en referens till tabellen SPEL för att hämta den information du vill ha.

Medlem sedan nov. 20011 551 inlägg
#10

fyy, vad ni e snabba ;)
fastnade i tfn innan jag skickade...

Medlem sedan juni 20019 519 inlägg
#11

men jag fattar egentligen inte varför det inte skulle gå... men men =)
Tror det var allt...

Medlem sedan juni 20019 519 inlägg
#12

Kan man göra om man söker på ett tomt ord så kommer det inget heller.. eller kör man typ i <input> att mintext eller vad det nu är.. har inte kollat upp det.

Och det här med mario 64 eller mario64
kan man inte göra någon if sats att om mellanslag finns displaya om den är typ korekt... eh.h... glöm detta.. kom på om man söker på mario64 och har en databas med Mario 64 så går det inte heller...

hmm.. men om ni kan svara på översta så blir jag glad =)

Medlem sedan nov. 20011 551 inlägg
#13

validera om det är ifyllt eller ej med javascript, så slipper servern jobba

Medlem sedan juni 20019 519 inlägg
#14

Liten fråga till. Om vi säger att vi söker nu på mario och jag har inget i databasen med Mario att göra då vill jag att den skriver ut:

Tyvärr hittar vi inget med spelet "mario" typ...
typ tyckte att det skulle hjälpa med

response.write "Hittar nada med spelet:" & SPELS & "typ."

Fungerar detta på något sätt så att man kan få fram att den inte hittar något med mario (ex).

Medlem sedan feb. 20012 412 inlägg
#15
If RecSet.EOF Then
response.write "inget bra fanns"
else
while not RecSet.EOF
'#-- Innehållet som ska loopas här --
RecSet.MoveNext
Wend
End If

mvh Jörgen :)

Medlem sedan juni 20019 519 inlägg
#16

jag har redan detta...

Jag vill ha om man har skrevit in i forumläret så ska det komma typ:

Sök Resultat av: Mario

eller något om det går.

Medlem sedan feb. 20012 412 inlägg
#17
response.write "<p>Sök Resultat av: "& request.form("SPEL") &"</p>"

mvh Jörgen :)

Medlem sedan juni 20019 519 inlägg
#18

Men det här med Mario64 Mario 64

Kan man inte göra något åt detta???

712 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
560 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)