webForumDet fria alternativet

Min sökmotor

ASP

4 svar · 209 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Frågan#1

hmm...detta går mig på nerverna... jag vill ju helt enkelt om man valde formuläret "Sök Ort" så visar den dom personer som bor i dom orterna... det funkar ju när man skriver i formuläret ovan "Sök användare" men ett till problem, fyller man inte i ngt i fälten blir det felmes... aja... koden ser ut så här:
formuläret:

<form name="sokning" method="post" action="search2.asp">
<p><font face="Verdana" size="1"><input type="text" name="username" size="30" style="font-family:Verdana; font-size:10;">  

<select name="ar" style="font-family:Verdana; font-size:10;">
<option selected value="född">F&ouml;dd</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
<option value="1996">1996</option>
<option value="1995">1995</option>
<option value="1994">1994</option>
<option value="1993">1993</option>
<option value="1992">1992</option>
<option value="1991">1991</option>
<option value="1990">1990</option>
<option value="1989">1989</option>
<option value="1988">1988</option>
<option value="1987">1987</option>
<option value="1986">1986</option>
<option value="1985">1985</option>
<option value="1984">1984</option>
<option value="1983">1983</option>
<option value="1982">1982</option>
<option value="1981">1981</option>
<option value="1980">1980</option>
<option value="1979">1979</option>
<option value="1978">1978</option>
<option value="1977">1977</option>
<option value="1976">1976</option>
<option value="1975">1975</option>
<option value="1974">1974</option>
<option value="1973">1973</option>
<option value="1972">1972</option>
<option value="1971">1971</option>
<option value="1970">1970</option>
<option value="1969">1969</option>
<option value="1968">1968</option>
<option value="1967">1967</option>
<option value="1966">1966</option>
<option value="1965">1965</option>
<option value="1964">1964</option>
<option value="1963">1963</option>
<option value="1962">1962</option>
<option value="1961">1961</option>
<option value="1960">1960</option></select>

<input type="submit" name="knapp" value="Sök användare" style="font-family:Verdana; font-size:10;"></font></p>

                
                    <p><font face="Verdana" size="1"><select name="bor" size="1" style="font-family:Verdana; font-size:10;">
                    <option selected>V&auml;lj:</option>
                    <option value="Göteborg">G&ouml;teborg</option>
                    <option value="Stockholm">Stockholm</option>
                    </select> <input type="submit" name="knapp" value="Sök ort" style="font-family:Verdana; font-size:10;"></font></p>
                </form>

sedan search2.asp:

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set rsJa = Server.Createobject("ADODB.Recordset")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"

If Request.Form("knapp")="Sök användare" Then
username=Request.Form("username")
ar=Request.Form("ar")
If username <> "" and ar <> "" Then
SQL="SELECT * FROM users WHERE username LIKE '%"&username&"%' AND ar='"&ar&"'" 
Set rsJa = databas.execute(SQL)
Else
%>
Du har inte fyllt i alla f&auml;lt. G&aring; tillbaka och f&ouml;rs&ouml;k igen.
<% End If %>
<% End If %>
<%
If Request.Form("knapp")="Sök ort" Then
bor=Request.Form("bor")
If bor <> "" Then
SQL = "SELECT * FROM users WHERE bor='"&bor&"'"
Set rsJa = databas.execute(SQL)
Else
Response.Write"Du valde ingen av orterna ju."
End If
%>
<% End If %>
<%
If rsJa.EOF then
Response.Write"Vi hittade inget här."
else
Do Until rsJa.EOF

Response.Write "Förnamn: " & "<b>" & rsJa("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & "<b>" & rsJa("Efternamn") & "<br></b>"
Response.Write "Emejl: " & "<b>" & rsJa("E-post") & "<br></b>"
Response.Write "Bor: " & "<b>" & rsJa("Bor") & "<br></b>"
Response.Write "Kön: " & "<b>" & rsJa("Kon") & "<br></B>"
Response.Write "Född: " & "<b>" & rsJa("ar") & rsJa("manad") & rsJa("dag") & "<br></b>"
Response.Write "Så här beskriver jag mig själv:" & "<b>" & "<br>" & rsJa("Fakta") & "<br></b>"

Response.Write "Nickname: " & "<b>" & rsJa("Username") & "<br><br></b>" & "<a href=""blikompis.asp?Username=" & rsJa("Username") & """><span style=""text-decoration:none;"">Bli kompis med " & rsJa("username") &"</a><br>" & "<a href=""skickamess.asp?till=" & rsJa("Username") & """><span style=""text-decoration:none;"">Skicka meddelande</a><br><br>"
Response.Write "<a href=""privatklotterplank.asp?vems=" & rsJa("Username") & """><span style=""text-decoration:none;"">Läs på " & rsJa("username") & "´s klotterplank</a><br>"
Response.Write "<a href=""javascript:na_open_window('nyttinlagg', 'skickaprivat.asp?till=" & rsJa("username") & "', 1, 1, 360, 350, 0, 0, 1, 1, 0);""><span style=""text-decoration:none;"">Skriv på " & rsJa("username") & "´s klotterplank</a></span><br><br>"

rsJa.MoveNext
Loop
%>

<%End If%>

felmess när man inte fyller i ngt av alla fält:

ADODB.Recordset error '800a0e78' 

Åtgärden som programmet begärt är inte tillåten om objektet är stängt. 

/groda/search2.asp, line 105

och när man väljer en ort blir det så här: (väljer man inget ger den samma felmess som ovan)


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

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'bor='Göteborg''. 

/groda/search2.asp, line 98

line 98:

SQL = "SELECT * FROM users WHERE bor='"&bor&"'"
Set rsJa = databas.execute(SQL)

hmmm... hjälp!

------------------
www.groda.net *kvack*, *kvack*

Medlem sedan dec. 200012 464 inlägg
#2

Det här felet

Åtgärden som programmet begärt är inte tillåten om objektet är stängt

beror på att du kollar på om rsja.eof är satt även om du inte har öppnat recordsetet. Du kan stuva om koden så att man bara skapar recordsetet om det behövs.

<%

If Request.Form("knapp")="Sök användare" Then
username=Request.Form("username")
ar=Request.Form("ar")
If username <> "" and ar <> "" Then
SQL="SELECT * FROM users WHERE username LIKE '%"&username&"%' AND ar='"&ar&"'" 

Else
Response.write "Du har inte fyllt i alla fält. Gå tillbaka och försök igen."
response.end
End If 
End If
If Request.Form("knapp")="Sök ort" Then
bor=Request.Form("bor")
If bor <> "" Then
SQL = "SELECT * FROM users WHERE bor = '" & bor & "'"
Else
Response.Write"Du valde ingen av orterna ju."
response.end
End If
End If

Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Set rsJa = databas.execute(SQL)
If rsJa.EOF then
Response.Write"Vi hittade inget här."
else
Do Until rsJa.EOF

Response.Write "Förnamn: " & "<b>" & rsJa("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & "<b>" & rsJa("Efternamn") & "<br></b>"
Response.Write "Emejl: " & "<b>" & rsJa("E-post") & "<br></b>"
Response.Write "Bor: " & "<b>" & rsJa("Bor") & "<br></b>"
Response.Write "Kön: " & "<b>" & rsJa("Kon") & "<br></B>"
Response.Write "Född: " & "<b>" & rsJa("ar") & rsJa("manad") & rsJa("dag") & "<br></b>"
Response.Write "Så här beskriver jag mig själv:" & "<b>" & "<br>" & rsJa("Fakta") & "<br></b>"

Response.Write "Nickname: " & "<b>" & rsJa("Username") & "<br><br></b>" & "<a href=""blikompis.asp?Username=" & rsJa("Username") & """><span style=""text-decoration:none;"">Bli kompis med " & rsJa("username") &"</a><br>" & "<a href=""skickamess.asp?till=" & rsJa("Username") & """><span style=""text-decoration:none;"">Skicka meddelande</a><br><br>"
Response.Write "<a href=""privatklotterplank.asp?vems=" & rsJa("Username") & """><span style=""text-decoration:none;"">Läs på " & rsJa("username") & "´s klotterplank</a><br>"
Response.Write "<a href=""javascript:na_open_window('nyttinlagg', 'skickaprivat.asp?till=" & rsJa("username") & "', 1, 1, 360, 350, 0, 0, 1, 1, 0);""><span style=""text-decoration:none;"">Skriv på " & rsJa("username") & "´s klotterplank</a></span><br><br>"

rsJa.MoveNext
Loop

End If%>

rsJa.close
databas.close

Det andra felet ser jag inget direkt som kan vara en förklaring. Kan du lägga in en testutskrift på sqlsträngen innan du gör execute?

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20002 526 inlägg
#3

när jag skriver ut ser det ut så här:

SELECT * FROM users WHERE bor = 'Stockholm'

------------------
www.groda.net *kvack*, *kvack*

Medlem sedan juni 200032 967 inlägg
#4

det andra felet har ju också en tendens att dyka upp när man antingen använt reserverade ord i sina fältnamn, eller helt enkelt skrivit fel fältnamn. så därför undrar jag:

  1. heter fältet verkligen bor?
  2. har du provat att klamra i sql-frågan?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

Medlem sedan dec. 20002 526 inlägg
#5

svar:
det heter "bor"
nej, ska prova det.

------------------
www.groda.net *kvack*, *kvack*

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)