Hej efter körning av SQL strängen Hej Den här koden funkar: Är det fnamn som du ska söka på? I sådant fall så får du ändra din SQL sträng till att söka efter fnamn = Otto. Om jag förstår det hela rätt så vill du göra en EXAKT sökning på vad som matas in.. Byt ut: Hej Mycket lurigt. Det finns alltså ett gottorp i historia? och den hittar inte det. Jag återkommer med lite funderingar måste bara göra klart en sak. Lekte lite med koden bara och testade (gjorde en liten accessfil och testade emot) och detta funkade finfint. Gottorp ja! Jojo, det betvivlar jag inte, vad jag menade var att det verkligen fanns ett "gottorp" i databaskolumnen "historia". Kungar har aldrig vart mitt starka ämnen.. jag testade din kod men den hittar ingenting, men jag får inte heller något felmeddelande !! 1. Du har fått ett i-mail 1) tack jag har mailat dig :-)söksträng
Håller på och gör en sökfunktion till min hemsida.
Använder access som db.
Jag har följande söksträng som funkar:
SQL = "SELECT * FROM tabellen WHERE historia like '%"&strdiv&"%' order by fnamn asc"
Om man söker på tex. OTTO som inte finns i databasen, så får man träffar på tex. Gottorp, (som finns)
Hur gör man för att istället få ett meddelande som säger att OTTO inte finns?
Om jag söker på tex. blblblblb så har jag en funktion som säger:
"Tyvärr så fanns inte: blblblblb i databasen.
Du får försöka med några andra söksträngar."
Men detta funkar inte med tex OTTO då det finns i order Gottorp..
några förslag?
/mvh NinaSv: söksträng
<code>RS.OPEN SQL, conn, 1, 1</code>
kan du köra
<code>
if RS.recordset < 1 then
response.write "Din sökning på <i>"& strdiv &"</i> hittades inte i databasen. Var god försök igen"
else
'visa träffar
end if
</code>
Eller hmm, ville du utesluta OTTO från sökningen? Sv:söksträng
min kod är ju inte den bästa, men jag får bara felet:
Din sökning på otto hittades inte i databasen. Var god försök igen
Körningsfel i Microsoft VBScript fel '800a01a8'
Objekt krävs.: 'RecSet'
/historia/resultatsokning2.asp, rad 67
På rad 67 står det: RecSet.Close
Min kod ser ut så här:
---------------------------------------------------------------------------------------
<%
Dim strdiv
strdiv = Request.Form("historia")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("galleriet.mdb")
IF strdiv = "" then
response.write "Du måste fylla i något i fältet !"
Response.Flush
Response.End
end if
if RecSet < 1 then
response.write "Din sökning på <i>"& strdiv &"</i> hittades inte i databasen. Var god försök igen"
else %>
'visa träffar
<tr><td>Följande personer har ordet <% =strdiv%> med.
Klicka på efternamnet för mer info.</td></TR>
<% Do While Not RecSet.EOF %>
<%=RecSet("fnamn")%>
<%=RecSet("fnamn2")%>
<%=RecSet("info")%>
<%=RecSet("fodd")%>-<%=RecSet("dod")%>
<%=RecSet("yrke2")%>
<% RecSet.MoveNext
Loop
End if
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
vad skall det stå efter: if RecSet ?xxxx? < 1 thenSv: söksträng
<%
Dim strdiv
strdiv = Request.Form("historia")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("galleriet.mdb")
IF strdiv = "" then
response.write "Du måste fylla i något i fältet !"
Response.Flush
Response.End
end if
SQL = "SELECT * FROM tabellen WHERE historia like '%"&strdiv&"%' order by fnamn asc"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open SQL, Connect
If RecSet.EOF then %>
</td></tr>
<tr><td ID="bb" align="center"><nobr>Tyvärr så fanns inte: <i><b><% =strdiv%></b></i> i databasen.</nobr></td></tr>
<tr><td ID="bb" align="center"> Du får försöka med några andra söksträngar.</td></tr>
<% Else %>
<tr bgcolor="#EDE1F9"><td id="bb" colspan="6" align="center">Följande personer har ordet <i><font size="2" color="blue"><% =strdiv%></font></i> med.
Klicka på <b>efternamnet</b> för mer info.</td></TR>
<tr><td height="10"></td></tr>
<tr>
<% Do While Not RecSet.EOF %>
<TD ID="bb" bgcolor="#EDE1F9"><nobr><b><%=RecSet("fnamn")%></b> <%=RecSet("fnamn2")%> <b><%=RecSet("info")%></b> (<%=RecSet("fodd")%>-<%=RecSet("dod")%>)</nobr></td></tr>
<tr><td id="bb"><%=RecSet("yrke2")%></td></tr>
<tr><td> </td></tr>
<% RecSet.MoveNext
Loop
End if
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
var skall jag då putta in den koden som du föreslog?
är grön på det här ;-)Sv:söksträng
I annat fall så får du ge användaren olika val och utifrån det skapa en dynamisk SQL sats som hämtar det man vill söka efter.
//Anna-KarinSv: söksträng
<code>
SQL = "SELECT * FROM tabellen WHERE historia like '%"&strdiv&"%' order by fnamn asc"
</code>
mot
<code>
SQL = "SELECT * FROM tabellen WHERE historia = '"& strdiv &"' order by fnamn asc"
</code>
Då letar den ENBART på den sträng du matar in (dvs OTTO) och fimpar Gottorp, Risotto och ottoman.Sv:söksträng
testade att byta till
SQL = "SELECT * FROM tabellen WHERE historia = '"& strdiv &"' order by fnamn asc"
men då hittar han inte gottorp när jag sökte på det, och det vet jag finns, fick följande:
Tyvärr så fanns inte: gottorp i databasen.
Du får försöka med några andra söksträngar.
han hittar ingenting nu
Konstigt!!Sv: söksträng
Sv:söksträng
<code>
<%
Dim strdiv
strdiv = Request.Form("historia")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("galleriet.mdb")
if strdiv = "" then
response.write "Du måste fylla i något i fältet !"
Response.Flush
Response.End
else
strdiv = Replace(strdiv,"'","''")
end if
SQL = "SELECT * FROM tabellen WHERE historia = '"& strdiv &"' order by fnamn asc"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF then
response.write "</td></tr>"
response.write "<tr><td ID=""bb"" align=""center""><nobr>Tyvärr så fanns inte: <i>"& strdiv &"</i> i databasen.</nobr></td></tr>"
response.write "<tr><td ID=""bb"" align=""center""> Du får försöka med några andra söksträngar.</td></tr> "
Else
response.write "<tr bgcolor=""#EDE1F9""><td id=""bb"" colspan=""6"" align=""center"">Följande personer har ordet <i><font size=""2"" color=""blue"">" & strdiv &"</font></i> med. "
response.write "Klicka på efternamnet för mer info.</td></TR>"
response.write "<tr><td height=""10""></td></tr> "
response.write "<tr>"
Do until RecSet.EOF
response.write "<TD ID=""bb"" bgcolor=""#EDE1F9""><nobr>"& RecSet("fnamn") &" "& RecSet("fnamn2") &" "& RecSet("info") &" ("& RecSet("fodd") &"-"& RecSet("dod") &")</nobr></td></tr>"
response.write "<tr><td id=""bb"">"& RecSet("yrke2") &"</td></tr> "
response.write "<tr><td> </td></tr> "
RecSet.MoveNext
Loop
End if
Connect.Close
Set Connect = Nothing
Set RecSet = Nothing
%>
</code>Sv: söksträng
alla kungarna från Adolf Fredrik till Karl XIII hette Holstein-Gottorp :-)
skall testa din kod
mvh NinaSv:söksträng
Sv: söksträng
Tyvärr så fanns inte: holstein-gottorp i databasen.
Du får försöka med några andra söksträngar.
Vad jag än söker på så hittar den inte det.
fattar inget :-(
vad skall man göra?Sv:söksträng
2. Det som du söker på måste stå exakt som i databasen, d v s söker du efter Urban af Holstein-Gottorp
och skriver Holstein-Gottorp så hittar den nada.
3. Det står holstein-gottorp i "historia" fältet i tabellen i databasen?Sv: söksträng
2) söker jag på Anna så hittar den inte det heller
3) det står Anna i databasen fält "historia"