Och såhär ser search2.asp koden ut, som inte funkar:
<!--#include file="inc_db.asp" -->
<% SQL = "SELECT * FROM news WHERE writer = " & Request.Form("search")
Set objRecSet = objConn.Execute(SQL)
if objRecSet.EOF Then
Response.Redirect("error.asp")
Else %>
<% Do Until ojbRecSet.EOF %>
<span class="topic"><b><%= objRecSet("topic")%></b></span><br>
<span class="news"><%= objRecSet("writer")%> - <%= objRecSet("date")%></span><br>
<%= objRecSet("news")%><br>
<br>
<% objRecSet.MoveNext
Loop %>
<% End if %>
<% objConn.Close
Set objRecSet = Nothing
Set objConn = Nothing %>
Mitt felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/asp/news/search2.asp, rad 76
Vad är felet?
Sedan undrar jag hur man gör för att söka i flera kolumner (inte bara "writer" kolumnen, alltså alla kolumner i news tabellen), och göra så att den skriver ut poster som innehåller texten, typ om man söker på "spel" så kommer nyheter innehållande texten "spelade" och "spelar" upp. Hoppas någon förstår mig.
Men vad dum jag är som söker efter att jag skrivit mitt inlägg. Nu fick jag det att funka. :r
Jag undrar dock hur man får texten man sökt på att bli fet (<b></b> ). Ex.
Om jag söker på "ping" å den hittar en post med "pingvin" så ska det se ut såhär: pingvin
jag undrar fortfarande hur man gör för att söka i hela tabellen nyheter.
Jag förmodar att du har bytt till like. Sökning i flera kolumner
s = "'%" & Request.Form("search") & "%'"
<%
SQL = "SELECT * FROM news " & _
" WHERE writer like " & s & _
" OR news like " & s & _
" OR topic like " & s
För att få fetstil (s definierat enligt ovan)
<% Do Until ojbRecSet.EOF %>
<span class="topic"><b><%= objRecSet("topic")%></b></span><br>
<span class="news"><%= objRecSet("writer")%> - <%= objRecSet("date")%></span><br>
[b]
<%
n = replace(objRecSet("news"),s,"<b>" & s & "</b>")
%>
<%= n%><br>
[/b]
<br>
<% objRecSet.MoveNext
Loop %>
Ungefär något sådant.
Red: glömde en parenters
------------------ essentitia preter non sans multiplicandum
<!--#include file="inc_db.asp" -->
<% sok = "'%" & Request.Form("search") & "%'" %>
<% SQL = "SELECT * From news " & _
" WHERE writer like " & sok & _
" OR news like " & sok & _
" OR topic like " & sok & _
" OR datum like " & sok
Set objRecSet = objConn.Execute(SQL)
if objRecSet.EOF Then
Response.Redirect("error.asp")
Else %>
<% Do Until objRecSet.EOF %>
<span class="topic"><b><%= objRecSet("topic")%></b></span><br>
<span class="date"><%= objRecSet("writer")%> - <%= objRecSet("datum")%></span><br>
<%= objRecSet("news")%><br>
<br>
<% n = replace(objRecSet("news"),sok,"<b>" & sok & "</b>") %>
<%= n %><br>
<% objRecSet.MoveNext
Loop %>
<% End if %>
<% objConn.Close
Set objRecSet = Nothing
Set objConn = Nothing %>
När jag söker skrivs hela nyheten (som sökordet finns med i) ut, men sedan blir det ett fel. Efter nyheten.
Körningsfel i Microsoft VBScript fel '800a005e'
Ogiltig användning av Null: 'replace'
/asp/news/search2.asp, rad 97
Det verkar som dina kolumner i databasen är odefinierade, innehåller null. Du kan lägga till en koll innan replace, men du borde nog se till att man alltid anger något värde för dessa kolumner.
<%
if isNull(objRs("news")) then
n = objRs("news")
else
n = replace(objRecSet("news"),sok,"<b>" & sok & "</b>")
end if
%>
------------------ essentitia preter non sans multiplicandum