T tank82 Medlem sedan feb. 2003 210 inlägg Frågan 18 sep. 2003 22:07 #1 Hjälp!
Jag håller på och trixar med en sökfunktion och jag vet inte vad som är fel, kan någon snäll person hjälpa mig med detta.
Skulle vara bra om resultatet från sökningen listades med den senaste nyheten längst upp också. TACK PÅ FÖRHAND! :birp
Felmeddelande:
Microsoft VBScript runtime error '800a01a8'
Object required: ''
index.asp, line 25
<%
Dim Con
Dim SQL
Dim RS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("news.mdb")%>
<html>
<head>
</head>
<body>
<form action="index.asp" method="post">
<input type="text" name="sokord" size="30">
<input type="submit" value="sök nu!" name="submit">
</form>
<p>
<% If Request.Form("sokord") <> "" Then
Response.Write "Din sökning på " & Request.Form("sokord") & " gav följande träffar.<br>" & vbCrLf
SQL = "Select * from news Where nyhet Like '%" & Request.Form("sokord") & "%' "
Set RecSet = Con.Execute(SQL)
While Not RecSet.EOF
Response.Write ""& RecSet("datum") &" - <a href=index.asp?page=news&ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
RecSet.MoveNext
Wend
RecSet.Close
Set RecSet = Nothing
End If %>
<%
Con.Close
Set Con = Nothing
%>
Jesper T Medlem sedan nov. 2001 7 144 inlägg Börja med att ändra: Set RecSet = Con.Execute(SQL)
till Set RecSet = Conn.Execute(SQL)
Jesper T Medlem sedan nov. 2001 7 144 inlägg Och: Con.Close
Set Con = Nothing
till:
Conn.Close
Set Conn = Nothing
S solbulle Medlem sedan mars 2001 5 287 inlägg typ:
<html>
<head>
</head>
<body>
<form action="index.asp" method="post">
<input type="text" name="sokord" size="30">
<input type="submit" value="sök nu!" name="submit">
</form>
<p>
<%
Dim Conn
Dim SQL
Dim RecSet
If Request.Form("sokord") <> "" Then
Response.Write "Din sökning på " & Request.Form("sokord") & " gav följande träffar.<br>" & vbCrLf
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("news.mdb")
SQL = "Select * from news Where nyhet Like '%" & Request.Form("sokord") & "%' order by datum"
Set RecSet = Conn.Execute(SQL)
While Not RecSet.EOF
Response.Write ""& RecSet("datum") &" - <a href=index.asp?page=news&ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
RecSet.MoveNext
Wend
RecSet.Close
Set RecSet = Nothing
Conn.Close
Set Conn = Nothing
End If %>
T tank82 Medlem sedan feb. 2003 210 inlägg KANON!!! :)
Men hur gör jag så att sökresultatet listas med den senaste nyheten längs upp? Det är ju inte jätte viktigt, men det skulle vara bra.
Edit:
Skulle man få datumet på detta sätt istället: 2 juli 2003, nu är det ju 2003-02-19 11:39:28 och så vill jag inte ha det.
S solbulle Medlem sedan mars 2001 5 287 inlägg SQL = "Select * from news Where nyhet Like '%" & Request.Form("sokord") & "%' order by datum desc"
S solbulle Medlem sedan mars 2001 5 287 inlägg T tank82 Medlem sedan feb. 2003 210 inlägg solbulle du är en klippa ;)
T tank82 Medlem sedan feb. 2003 210 inlägg Hmm ok nu till ett annat problem!...
om jag vill tex ha så man kan söka antingen på en nyhet eller artikel, hur gör jag i denna kod då? Jag har delat upp sökmotorn till två filer (index.asp och index2.asp) men skit i den delen som skriver ut själva resultatet, utan den är bara den första delen jag behöver hjälp med..
Om man väljer "sök nyhet i dropdownen" så ska man komma till index2.asp
Och om man väljer "sök artikel i dropdownen" så ska den gå till index3.asp
hur gör jag?? :)
DEL 1 (index.asp)
<html>
<head>
</head>
<body>
<form action="index2.asp" method="post">
<input type="text" name="sokord" size="30">
<input type="submit" value="sök nu!" name="submit">
</form>
S solbulle Medlem sedan mars 2001 5 287 inlägg Jag tycer VERKLIGEN att du bara ska ha en sida som visar vad du söker efter.
<html>
<head>
</head>
<body>
<form action="index2.asp" method="post">
<select name="sort">
<option Value="nyhet" Selected>nyhet</option>
<option Value="artikel">artikel</option>
</select>
<input type="text" name="sokord" size="30">
<input type="submit" value="sök nu!" name="submit">
</form>
Sen i mottagande sida kör du typ:
SQL = "Select * from news Where " & Request.Form("sort") & " Like '%" & Request.Form("sokord") & "%' order by datum"
T tank82 Medlem sedan feb. 2003 210 inlägg hmm jo men problemet är att jag har dom i två olika tabeller news och artiklar, därför vill jag ha det så.
S solbulle Medlem sedan mars 2001 5 287 inlägg Då läser du inte vad jag skriver.
Jag förstår fortfarande inte problemet med det.
(Ändra value i formuläret från "nyheter" till "news".)
T tank82 Medlem sedan feb. 2003 210 inlägg men då blir det ju inte rätt här?
Response.Write ""& FormatDateTime(RecSet("datum"),2) &" - <a href=index.asp?page=nyheter &ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
eftersom om man söker på artiklar så ska det bli så här:
Response.Write ""& FormatDateTime(RecSet("datum"),2) &" - <a href=index.asp?page=artiklar &ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
Jesper T Medlem sedan nov. 2001 7 144 inlägg Det går ju att trixa med. Om dú utgår ifrån Solbulles kod så kanske du kan lösa det såhär:
Response.Write ""& FormatDateTime(RecSet("datum"),2) &" - <a href=index.asp?page="&Request.Form("sort")&"&ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
T tank82 Medlem sedan feb. 2003 210 inlägg just det... ska genast testa!
S solbulle Medlem sedan mars 2001 5 287 inlägg Oki. Enklaste lösningen är ju att du byter namn i din db från news till nyheter i så fall. Går ju iofs att fixa en lösning ändå.
Om du byter namn:
Response.Write FormatDateTime(RecSet("datum"),2) &" - <a href=index.asp?page=" & Request.Form("sort") & "&ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
S solbulle Medlem sedan mars 2001 5 287 inlägg Annars typ:
sort = Request.Form("sort")
If sort = "news" then
sort = "nyheter"
End If
Response.Write FormatDateTime(RecSet("datum"),2) &" - <a href=index.asp?page=" & sort & "&ID="& RecSet("ID") &" target=>"& RecSet("rubrik") &"</a><br>" & vbCrLf
T tank82 Medlem sedan feb. 2003 210 inlägg (helt borta nu)
Jag har ju en db news.mdb sen är det två tabeller i den news och artiklar sen är det ID, datum, nyhet, osv
S solbulle Medlem sedan mars 2001 5 287 inlägg Eftersom du gärna vill skriva på svenska på din sida så blir det ju enkalre med samma namn i db. Men min andra variant ska ju fungera det med. Att ha två sidor är imho förkastligt.
Såg iofs inte att Jesper T redan postat kod. :)
Är det ingen här som har ett jobb eller liknande att sköta i morgon btw? ;)
T tank82 Medlem sedan feb. 2003 210 inlägg men detta fungerar ju inte eftersom jag har news (tabell 1) och artikel (tabell 2)
SQL = "Select * from news Where " & Request.Form("sort") & " Like '%" & Request.Form("sokord") & "%' order by datum"
PS. Jag har sagt upp mig från jobbet, så nu är jag hemma och tar hand om ungen =)