webForumDet fria alternativet

Visa antal träffar?

ASP

37 svar · 798 visningar · startad av Korak · sida 2 av 2

Frågan, av Korak

Sitter och försöker få ihop ett sökscript. Det jag inte får till är att få fram antal träffar efter en sökning. Någon som kan hjälpa mig? Så här ser scriptet ut (falt1 är Id): <td><b>Sökresultat</b> Antal tfräffar: <%Fattar=Noll%></td> </tr> <tr> <td><img src="dot.gif" width="284" height="10"></td> </tr> <%Falt = Trim(Request.Form("falt")) If Len(Request.For

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#21

Hm.

Visa det kodavsnittet som det ser ut nu, så ska vi se...

Mvh,

Medlem sedan maj 2001133 inlägg
#22
<%
        Set Conn = Server.CreateObject("ADODB.Connection")
        Set RecSet    = Server.CreateObject("ADODB.Recordset")
        Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

        SQL = "Select count(*) AS traffar From " & Tabbe & " Where " & Falt & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"
        RecSet.Open SQL, Conn
%>

<td><b>Sökresultat</b> Antal tfräffar: <%=RecSet("traffar")%></td>
  </tr>
  <tr> 
     <td><img src="dot.gif" width="284" height="10"></td>
  </tr>
        <%Falt = Trim(Request.Form("falt"))

If Len(Request.Form("sokord")) > 0 then 

 	If RecSet.EOF Then
            Response.write "<tr><td>Sökordet <b>" & Request.Form("sokord") & "</b> gav inga fräffar!</td></tr><tr><td><img src=dot.gif width='100%'></td></tr>"
        Else
        Do Until RecSet.EOF
	    Response.Write "<tr height=15><td>" & Left(RecSet(falt4),10) & "</td></tr>"
            Response.Write "<tr height=15><td><a href=java script:res('" & link & "?do=visa&id=" & RecSet(falt1) & "');>" & Left(RecSet(falt2),50) & "</a></td></tr>"
            Response.Write "<tr><td><img src=dot.gif width='100%'></td></tr>"
        RecSet.MoveNext
	Loop

	RecSet.Close
	Set RecSet = Nothing
        End If
   Else
       Response.write "<tr><td class=normal>Du måste skriva in ett sökord!</td></tr><tr><td><img src=dot.gif width='100%'></td></tr>"
   End If%>
Medlem sedan juni 200032 967 inlägg
#23
<%
        Set Conn = Server.CreateObject("ADODB.Connection")
        Set RecSet    = Server.CreateObject("ADODB.Recordset")
        Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

        SQL = "Select count(*) AS traffar From " & Tabbe & " Where " & Falt & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"
        Response.write SQL
        Response.End
        RecSet.Open SQL, Conn
%>

Denna kod borde visa i browsern hur den färdiga SQL-frågan ser ut. Är det något som saknas? Hur ser den ut?

Mvh,

Medlem sedan maj 2001133 inlägg
#24

Nu hände det nåt nytt, så här blev det efter en sökning:

Select count(*) AS traffar From news Where Like '%nyhet%' Order By Id Desc
Medlem sedan juni 200032 967 inlägg
#25

Det saknas något:

Select count(*) AS traffar From news Where [b]här ska det stå ett fältnamn[/b] Like '%nyhet%' Order By Id Desc

Variabeln Falt är alltså tom. Var får den sitt värde?

Mvh,

Medlem sedan maj 2001133 inlägg
#26

Hmm, nu börjar det kanske närma sig en lösning.
Så här ser tabell och fält ut:

Tabbe = "news"

falt1 = "Id"
falt2 = "news_title"
falt3 = "news_text"
falt4 = "news_date"

Glömde...ett tillägg:
Den hämtar alltså från falt3 = "news_text" vid en sökning.

Medlem sedan juni 200032 967 inlägg
#27

Hmm.

Bara Falt då?

SQL = "Select count(*) AS traffar From " & Tabbe & " Where " & [b]Falt[/b] & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"

Ska inte det fetmarkerade vara antingen falt2, falt3 eller falt4?

Mvh,

Medlem sedan sep. 2001269 inlägg
#28

Den får aldrig nåt värde på koden som visades innan.

Däremot finns falt1, falt2, falt3 och falt4.

( Oj, såg inte att det fanns en sida till :r )

Medlem sedan maj 2001133 inlägg
#29

Det trodde jag också, jag var bombsäker på att falt3 skulle funka.
Testade alla alt. innan jag postade förra inlägget, det blev samma felmedd. som vanligt.
Det känns ju som det är exakt rätt.
Så här ser den fungerande kodsnutten ut innan man lagt in "visa antal träffar":

    <td><b>Sökresultat:</b></td>
  </tr>
  <tr> 
      
    <td>&nbsp;</td>
    </tr>
        <%Falt = Trim(Request.Form("falt"))

        If Len(Request.Form("sokord")) > 0 then 

        Set Conn = Server.CreateObject("ADODB.Connection")
        Set RecSet    = Server.CreateObject("ADODB.Recordset")
        Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

        SQL = "Select * From " & Tabbe & " Where " & Falt & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"
        RecSet.Open SQL, Conn

 	If RecSet.EOF Then
            Response.write "<tr><td>Sökordet <b>" & Request.Form("sokord") & "</b> gav inga fräffar!</td></tr><tr><td><img src=dot.gif width='100%'></td></tr>"
        Else
        Do Until RecSet.EOF
		    Response.Write "<tr height=15><td>" & Left(RecSet(falt4),10) & "</td></tr>"
            Response.Write "<tr height=15><td><a href=javascript:res('" & link & "?do=visa&id=" & RecSet(falt1) & "');>" & Left(RecSet(falt2),50) & "</a></td></tr>"
            Response.Write "<tr><td><img src=dot.gif width='100%'></td></tr>"
        RecSet.MoveNext
	Loop

	RecSet.Close
	Set RecSet = Nothing
        End If
   Else
       Response.write "<tr><td>Du måste skriva in ett sökord!</td></tr><tr><td><img src=dot.gif width='100%'></td></tr>"
   End If%>

Vad är det som blir fel...jag fattar inte. Otroligt märkligt.

Medlem sedan juni 200032 967 inlägg
#30

Då gör vi så här, att vi provar att använda ADO, mha RecordCount.

Märk det feta.

<td><b>Sökresultat:</b></td>
  </tr>
  <tr> 
      
    <td> </td>
    </tr>
        <%Falt = Trim(Request.Form("falt"))

        If Len(Request.Form("sokord")) > 0 then 

        Set Conn = Server.CreateObject("ADODB.Connection")
        Set RecSet    = Server.CreateObject("ADODB.Recordset")
        Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

        SQL = "Select * From " & Tabbe & " Where " & Falt & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"
        RecSet.Open SQL, Conn[b], 3, 3 'Något osäker på dessa parametrar dock[/b] 

 	If RecSet.EOF Then
            Response.write "<tr><td>Sökordet <b>" & Request.Form("sokord") & "</b> gav inga fräffar!</td></tr><tr><td><img src=dot.gif width='100%'></td></tr>"
        Else
        Do Until RecSet.EOF
		    Response.Write "<tr height=15><td>" & Left(RecSet(falt4),10) & "</td></tr>"
            Response.Write "<tr height=15><td><a href=java script:res('" & link & "?do=visa&id=" & RecSet(falt1) & "');>" & Left(RecSet(falt2),50) & "</a></td></tr>"
            Response.Write "<tr><td><img src=dot.gif width='100%'></td></tr>"
        RecSet.MoveNext
	Loop
                [b]Response.write "<tr><td>" & RecSet.RecordCount & " poster funna</td></tr>"[/b]
	RecSet.Close
	Set RecSet = Nothing
        End If
   Else
       Response.write "<tr><td>Du måste skriva in ett sökord!</td></tr><tr><td><img src=dot.gif width='100%'></td></tr>"
   End If%>

Mvh,

Medlem sedan maj 2001133 inlägg
#31

Fungerade alldeles förträffligt perfekt:
http://www.eskobar.nu/nyheter/sok.asp

Tack så otroligt mycket!
Jag trodde verkligen att det var kört :)

Medlem sedan maj 2001133 inlägg
#32

Jag igen :)
Ingen fara, nu är det bara en liten fråga...tror jag.
När jag la in allt på rätt sida blev det lite konstigt med include-menyer mm i popup-fönstret.
Jag gjorde därför en separat popup.asp för att visa nyheten:

<%
db = Server.MapPath("nyheter.mdb")

Tabbe = "news"

falt1 = "Id"
falt2 = "news_title"
falt3 = "news_text"
falt4 = "news_date"
%>

<html>
<head>
<title>Nyheter - Popup</title>
</head>

<body>

<%
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

  Set RecSet = Conn.Execute("Select * From " & Tabbe & " Where id=" & Request.QueryString("id"))%>
      <table cellspacing="0" cellpadding="0" width="100%">
        <tr> 
          <td><%=RecSet(falt4)%></td>
        </tr>
        <tr> 
          <td><b><%=RecSet(falt2)%></b></td>
        </tr>
        <tr> 
          <td>&nbsp;</td>
        </tr>
        <tr> 
          <td><%=Replace(RecSet(falt3), vbCrLf, "<br>")%></td>
        </tr>
      </table>
	  
</body>
</html>

Nu undrar jag bara om jag på något smidigt sätt kan lägga in så att html ej tillåts att visas på denna sida?
I många av nyheterna finns länkar mm som självklart blir väldigt konstigt när de öppnas i det lilla popup-fönstret.

Medlem sedan feb. 20012 412 inlägg
#33

Vad menar du med inte tillåtas, ska HTML bara skrivas ut som vanligt utan att bli "funktionell" kan du använda server.htmlEncode annars får du replaca din HTML-kod med antingen funktionen replace eller regular expressions.

Medlem sedan maj 2001133 inlägg
#34

Det var lite korkat formulerat av mig.
Det jag menade är att jag vill att länkar visas som vanlig text.
Om du testar att söka på exempelvis "skiva" och sedan klickar på översta nyheten så förstår du vad jag menar:
http://www.eskobar.nu/nyheter/sok.asp

Det blir ju lite "fel" om man klickar på en länk i popup-fönstret.

Medlem sedan feb. 20012 412 inlägg
#35

Hej, är det bara länkar det gäller kan du ju bara skriva ut posten rakt upp och ner utan att lägga in det i <a href="URL">länk</a>

Men vill du ha kontroll på allt som du skriver ut använder du server.htmlEncode:

response.write "<p> " & server.htmlEncode(rs("strField")) & " </p>"
Medlem sedan feb. 20012 412 inlägg
#36

Hej igen, jag kom på en fuling. Du kan ju stänga ditt pop-up fönster när någon klickar på länken och öppna länken i fönstret under:

response.write "<a href=""javascript:opener.location=('www.sidan.asp'); self.close();"">Länk</a>"

Istället för https://www.sidan.asp lägger du in din variabel som innehåller en URL.

Medlem sedan maj 2001133 inlägg
#37

Hmm, jag är inte så haj på det här.
Om man säger så här...går det på något sätt att få in "visa alla <a href="URL">länk</a> som vanlig text istället" i denna kodsnutt:

<%=Replace(RecSet(falt3), vbCrLf, "<br>")%>

Tillägg:
Skrev texten ovanför innan jag hann läsa ditt inlägg ovan.
Tack för "fuling-tipset" men jag tror det blir lite väl förvirrande för folk.

Tycker redan popup-fönster är på gränsen till vad som är "tillåtet".
Funderar faktiskt på att skippa popup-varianten och länka direkt till nyheten istället.
Testar att göra så nu.

Medlem sedan maj 2001133 inlägg
#38

Jepp så får det bli, utan popup. Nu är allt som jag vill ha det.
Jag lovar att inte posta fler inlägg i denna tråd. :)
Tack än en gång för all hjälp!

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