webForumDet fria alternativet

Sökmotor

ASP

6 svar · 444 visningar · startad av eko

Medlem sedan juni 2002198 inlägg
Frågan#1

Hej.

Jag vill ta bort hela selectväljaren.
Så att man automatiskt söker i alla fälten sammtidigt! Utan att behöva välja. Hur gör jag detta?
Det skall alltså bara vara ett sökfält och en knapp bort med resten...

<%
db = Server.MapPath("db/nyheter.mdb")
Tabbe = "nyheter"
falt1 = "Id"
falt2 = "Rubrik"
falt3 = "Nyhet"
falt4 = "Datum"
falt5 = "Skribent"
%>

<%If Request.QueryString("do") = "" Then%>
<table cellspacing="0" cellpadding="0" width="300" border="0">
  <tr> 
    
  </tr>
  <tr> 
    <form name="sok" method="post" action="search.asp?do=sok">
      <td><input type="text" name="sokord" size="22" maxlength="20"> &nbsp; <select name="falt">
          <option value="<%=falt2%>" name="falt"><%=falt2%> 
          <option value="<%=falt3%>" name="falt"><%=falt3%> 
          <option value="<%=falt4%>" name="falt"><%=falt4%> 
          <option value="<%=falt5%>" name="falt"><%=falt5%> </select> &nbsp; <input type="submit" name="Submit" value="Sök"></td>
    </form>
  </tr>
</table>
<%End If

If Request.QueryString("do") = "sok" Then%>

<table cellspacing="0" cellpadding="0" width="300" border="0">
  <tr> </tr>
  <tr> 
    <form name="sok" method="post" action="search.asp?do=sok">
      <td><input type="text" name="sokord" size="22" maxlength="20"> &nbsp; <select name="falt">
          <option value="<%=falt2%>" name="falt"><%=falt2%> 
          <option value="<%=falt3%>" name="falt"><%=falt3%> 
          <option value="<%=falt4%>" name="falt"><%=falt4%> 
          <option value="<%=falt5%>" name="falt"><%=falt5%> </select> &nbsp; <input type="submit" name="Submit" value="Sök"></td>
    </form>
  </tr>
  <tr> </tr>
  <tr> </tr>
  <tr> 
    <td>&nbsp;</td>
  </tr>
  <tr> 
    <td><strong>Search Results</strong></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 class=normal>Your search of <b>" & Request.Form("sokord") & "</b> returned no results</td></tr>"
        Else
        Do Until RecSet.EOF
            Response.Write "<tr height=15><td class=normal><b>»</b> <a href=search.asp?do=visa&id=" & RecSet(falt1) & ">" & Left(RecSet(falt2),30) & "</a></td></tr>"
            
        RecSet.MoveNext
	Loop

	RecSet.Close
	Set RecSet = Nothing
        End If
   Else
       Response.write "<tr><td class=normal>Please try again...</td></tr>"
   End If%>
</table>

<%End If

If Request.QueryString("do") = "visa" Then
  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="300">
  <tr> 
      <td><b><%=RecSet(falt2)%> - <%=RecSet(falt4)%></b></td>
    </tr>
  <tr> 
      
    <td></td>
    </tr>
    <tr> 
      
    <td class="normal"><%=Replace(RecSet(falt3), vbCrLf, "<br>")%></td>
    </tr>
 </table>
<%End If%>
Medlem sedan dec. 19996 721 inlägg
#2
<%
db = Server.MapPath("db/nyheter.mdb")
Tabbe = "nyheter"
falt1 = "Id"
falt2 = "Rubrik"
falt3 = "Nyhet"
falt4 = "Datum"
falt5 = "Skribent"
%>

<%If Request.QueryString("do") = "" Then%>
<table cellspacing="0" cellpadding="0" width="300" border="0">
  <tr> 
    
  </tr>
  <tr> 
    <form name="sok" method="post" action="search.asp?do=sok">
      <td><input type="text" name="sokord" size="22" maxlength="20">     <input type="submit" name="Submit" value="Sök"></td>
    </form>
  </tr>
</table>
<%End If

If Request.QueryString("do") = "sok" Then%>

<table cellspacing="0" cellpadding="0" width="300" border="0">
  <tr> </tr>
  <tr> 
    <form name="sok" method="post" action="search.asp?do=sok">
      <td><input type="text" name="sokord" size="22" maxlength="20">     <input type="submit" name="Submit" value="Sök"></td>
    </form>
  </tr>
  <tr> </tr>
  <tr> </tr>
  <tr> 
    <td> </td>
  </tr>
  <tr> 
    <td><strong>Search Results</strong></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 " & falt1 & " Like '%" & Request.Form("sokord") & "%' OR " & falt2 & " Like '%" & Request.Form("sokord") & "%' OR " & falt3 & " Like '%" & Request.Form("sokord") & "%' OR " & falt4 & " Like '%" & Request.Form("sokord") & "%' OR " & falt5 & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"
        RecSet.Open SQL, Conn

 	If RecSet.EOF Then
            Response.write "<tr><td class=normal>Your search of <b>" & Request.Form("sokord") & "</b> returned no results</td></tr>"
        Else
        Do Until RecSet.EOF
            Response.Write "<tr height=15><td class=normal><b>»</b> <a href=search.asp?do=visa&id=" & RecSet(falt1) & ">" & Left(RecSet(falt2),30) & "</a></td></tr>"
            
        RecSet.MoveNext
	Loop

	RecSet.Close
	Set RecSet = Nothing
        End If
   Else
       Response.write "<tr><td class=normal>Please try again...</td></tr>"
   End If%>
</table>

<%End If

If Request.QueryString("do") = "visa" Then
  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="300">
  <tr> 
      <td><b><%=RecSet(falt2)%> - <%=RecSet(falt4)%></b></td>
    </tr>
  <tr> 
      
    <td></td>
    </tr>
    <tr> 
      
    <td class="normal"><%=Replace(RecSet(falt3), vbCrLf, "<br>")%></td>
    </tr>
 </table>
<%End If%>
Medlem sedan juni 2002198 inlägg
#3

Tack emission! Helt perfekt! ;)

Medlem sedan juni 2002198 inlägg
#4

Får följande mess:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 2 förväntades.
/html/Site/guestbook_search.asp, line 59

Vad är detta för fel? På line 59 står det: RecSet.Open SQL, Conn

<%
db = Server.MapPath("db/guestbook.mdb")
Tabbe = "inlagg"
falt1 = "Id"
falt2 = "Namn"
falt3 = "E-mail"
falt4 = "Hemsida"
falt5 = "Meddelande"
%>
<table width="100%" border="0">
  <tr> 
    <td>Search in the Guestbook</td>
  </tr>
  <tr>
    <td>

<%If Request.QueryString("action") = "" Then%>
<table cellspacing="0" cellpadding="0" width="300" border="0">
  <tr> 
    
  </tr>
  <tr> 
    <form name="sok" method="post" action="?NODE=8&action=search">
      <td><input type="text" name="sokord" size="22" maxlength="20">     <input type="submit" name="Submit" value="Sök"></td>
    </form>
  </tr>
</table>
<%End If

If Request.QueryString("action") = "search" Then%>

<table cellspacing="0" cellpadding="0" width="300" border="0">
  <tr> </tr>
  <tr> 
    <form name="action" method="post" action="?NODE=8&action=search">
      <td><input type="text" name="sokord" size="22" maxlength="20">     <input type="submit" name="Submit" value="Sök"></td>
    </form>
  </tr>
  <tr> </tr>
  <tr> </tr>
  <tr> 
    <td> </td>
  </tr>
  <tr> 
    <td><strong>Search Results</strong></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 " & falt1 & " Like '%" & Request.Form("sokord") & "%' OR " & falt2 & " Like '%" & Request.Form("sokord") & "%' OR " & falt3 & " Like '%" & Request.Form("sokord") & "%' OR " & falt4 & " Like '%" & Request.Form("sokord") & "%' OR " & falt5 & " Like '%" & Request.Form("sokord") & "%' Order By " & falt1 & " Desc"
        RecSet.Open SQL, Conn

 	If RecSet.EOF Then
            Response.write "<tr><td class=normal>Your search of <b>" & Request.Form("sokord") & "</b> returned no results</td></tr>"
        Else
        Do Until RecSet.EOF
            Response.Write "<tr height=15><td class=normal><b>»</b> <a href=?NODE=8&action=show&ID=" & RecSet(falt1) & ">" & Left(RecSet(falt2),30) & "</a></td></tr>"
            
        RecSet.MoveNext
	Loop

	RecSet.Close
	Set RecSet = Nothing
        End If
   Else
       Response.write "<tr><td class=normal>Please try again...</td></tr>"
   End If%>
</table>

<%End If

If Request.QueryString("action") = "show" Then
  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="300">
  <tr> 
      <td><b><%=RecSet(falt2)%> - <%=RecSet(falt4)%></b></td>
    </tr>
  <tr> 
      
    <td></td>
    </tr>
    <tr> 
      
    <td class="normal"><%=Replace(RecSet(falt3), vbCrLf, "<br>")%></td>
    </tr>
 </table>
<%End If%></td>
  </tr>
</table>
Medlem sedan juni 200032 967 inlägg
#5
  1. Läs om hur "acceptera som slutgiltigt svar" ska användas: http://www.webforum.nu/misc.php?s=&action=faq&page=2#status
  2. Skriv ut färdig SQL-fråga för felsökning. Felmeddelandet betyder att det har angetts två felaktiga tabell- / fältnamn i frågan.
Medlem sedan juni 200032 967 inlägg
#6

Antagligen beror felet på att du har ett fält som heter E-mail. Det tolkas i SQL-frågan som fältet E minus fältet Mail. Byt namn på det fältet.

Medlem sedan juni 2002198 inlägg
#7

Ja det var email fältet som spökade....
Nu funkar det, Tack Tack.

272 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)