webForumDet fria alternativet

fel på sökfunktion

ASP

24 svar · 415 visningar · startad av tank82

Medlem sedan feb. 2003210 inlägg
Frågan#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
%>
Medlem sedan nov. 20017 144 inlägg
#2

Börja med att ändra: Set RecSet = Con.Execute(SQL)
till Set RecSet = Conn.Execute(SQL)

Medlem sedan nov. 20017 144 inlägg
#3

Och: Con.Close
Set Con = Nothing
till:
Conn.Close
Set Conn = Nothing

Medlem sedan mars 20015 287 inlägg
#4

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 %>
Medlem sedan feb. 2003210 inlägg
#5

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.

Medlem sedan mars 20015 287 inlägg
#6

SQL = "Select * from news Where nyhet Like '%" & Request.Form("sokord") & "%' order by datum desc"

Medlem sedan mars 20015 287 inlägg
Medlem sedan feb. 2003210 inlägg
#8

solbulle du är en klippa ;)

Medlem sedan feb. 2003210 inlägg
#9

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>
Medlem sedan mars 20015 287 inlägg
#10

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"
Medlem sedan feb. 2003210 inlägg
#11

hmm jo men problemet är att jag har dom i två olika tabeller news och artiklar, därför vill jag ha det så.

Medlem sedan mars 20015 287 inlägg
#12

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".)

Medlem sedan feb. 2003210 inlägg
#13

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

Medlem sedan nov. 20017 144 inlägg
#14

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
Medlem sedan feb. 2003210 inlägg
#15

just det... ska genast testa!

Medlem sedan mars 20015 287 inlägg
#16

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
Medlem sedan mars 20015 287 inlägg
#17

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
Medlem sedan feb. 2003210 inlägg
#18

(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

Medlem sedan mars 20015 287 inlägg
#19

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? ;)

Medlem sedan feb. 2003210 inlägg
#20

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 =)

330 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
193 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
185 ms — ändringar (db)