webForumDet fria alternativet

Sök problem i access

15 svar · 414 visningar · startad av Exploit

ExploitMedlem sedan nov. 2006107 inlägg
#1

Hej vet att jag har tagit upp förut om mina sök problem men nu har ett nytt probbz uppstått...
nu kan man söka på vad som hellst eller inget alls så kommer alla mina länkar upp med i söklistan (Dom som har ord i key kolummen)

Detta är min kod på default.asp

              <form name="form1" method="post" target="iframe" action="sok.asp">
                <label>
                
                  <div align="left">
                    <INPUT TYPE="text" SIZE="20" NAME="sokord">
                    <br>
                    <input name="Submit" type="submit" submit ="SELECT * FROM lankar WHERE key & namn LIKE '%" value="S&ouml;k">
                  </div>
                  </label>
                </label>
            </form>

Detta är min kod i sok.asp

<!-- #include file = "adovbs.inc" -->
<HTML><link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
-->
</style>

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/lankar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM lankar WHERE key & namn LIKE '%" & Request.Form("sokord")& "%'"

Set RS=Connect.Execute (SQL)

If RS.EOF then
     response.Write "Ingen träff"
End if

Do Until RS.EOF

%>

<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
-->
</style>
<p>&nbsp;</p>
<TABLE border='0' width='361'>
  <tr><td width="107" rowspan="4"><img src="<%=RS("banner")%>" width="88" height="31" align="right"><br>
    <br>    <br>
</td>
    <td width="244"><a href="klick.asp?id=<%=RS("id")%>" target="_blank" onMouseOver="self.status='<%= RS("hemsida")%>';return true" onMouseOut="self.status=' ';return true"><%=RS("namn")%></a></td>
  </tr>
  <tr>
    <td><strong><font size="1" face="Verdana">(</font></strong><span class="style4"><font size="1" face="Verdana"><%=RS("klick")%></font> <font size="1" face="Verdana" class="style4">klick)</font></span></td>
  </tr>
  <tr>
    <td><%=RS("text")%></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</TABLE>

<%
RS.MoveNext
LOOP
RS.Close
Connect.Close
%>

</HTML>
WebbisNetMedlem sedan feb. 20032 027 inlägg
#2

varför har du fortfarande sql i inputknappen?

börja med att ha
<input name="Submit" type="submit" value="Sök">

ExploitMedlem sedan nov. 2006107 inlägg
#3

?? Förklara vart..... som sagt va jag är nybörjare..

ExploitMedlem sedan nov. 2006107 inlägg
#4

I den här ?

[code}
SQL = "SELECT * FROM lankar WHERE key & namn LIKE '%" & Request.Form("sokord")& "%'"

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5

Exploit skrev:

I den här ?

[code}
SQL = "SELECT * FROM lankar WHERE key & namn LIKE '%" & Request.Form("sokord")& "%'"

I default.asp ska du inte ha sqlsatsen i input

i sok.asp ska det vara

<!-- #include file = "adovbs.inc" -->
<!--#include virtual = "conn.asp"-->
<HTML>
<HEAD><TITLE>din titel</TITLE>

<link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
-->
</style>
</HEAD>
<BODY>
<%
SQL = "SELECT * FROM lankar WHERE key & namn LIKE '%" & Request.Form("sokord")& "%'"

Set RS=Connect.Execute (SQL)

If RS.EOF then
     response.Write "Ingen träff"
Else
Do Until RS.EOF%>

<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
-->
</style>
<p>&nbsp;</p>
<TABLE border='0' width='361'>
  <tr><td width="107" rowspan="4"><img src="<%=RS("banner")%>" width="88" height="31" align="right"><br>
    <br>    <br>
</td>
    <td width="244"><a href="klick.asp?id=<%=RS("id")%>" target="_blank" onMouseOver="self.status='<%= RS("hemsida")%>';return true" onMouseOut="self.status=' ';return true"><%=RS("namn")%></a></td>
  </tr>
  <tr>
    <td><strong><font size="1" face="Verdana">(</font></strong><span class="style4"><font size="1" face="Verdana"><%=RS("klick")%></font> <font size="1" face="Verdana" class="style4">klick)</font></span></td>
  </tr>
  <tr>
    <td><%=RS("text")%></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</TABLE>

<%RS.MoveNext: LOOP
End If
RS.Close
Connect.Close%>
</BODY>
</HTML>

i conn.asp kan du ha

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/lankar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
ExploitMedlem sedan nov. 2006107 inlägg
#6

Nu har jag gjort följande men det funkar endå INTE.
När jag trycker på sök knappen utan att ha fyllt i nått så listar den alla mina länkar från databasen????????

ExploitMedlem sedan nov. 2006107 inlägg
#7

Default.asp där knappen & sök rutan finns:

              <form name="form1" method="post" target="iframe" action="sok.asp">
                <label>
                
                  <div align="left">
                    <INPUT TYPE="text" SIZE="20" NAME="sokord">
                    <br>
                    <input name="Submit" type="submit" value="S&ouml;k">
                  </div>
                  </label>
                </label>
            </form>

I sok.asp

<!-- #include file = "adovbs.inc" -->
<!--#include virtual = "conn.asp"-->
<HTML><link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
-->
</style>

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/lankar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

SQL= "SELECT * FROM lankar WHERE key & namn LIKE '%" & Request.Form("sokord")& "%'"

Set RS=Connect.Execute (SQL)

If RS.EOF then
     response.Write "Ingen träff"
End if

Do Until RS.EOF

%>

<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
-->
</style>
<p>&nbsp;</p>
<TABLE border='0' width='361'>
  <tr><td width="107"><img src="<%=RS("banner")%>" width="88" height="31" align="right"><br>
    <br>    <br>
</td>
    <td width="244"><a href="klick.asp?id=<%=RS("id")%>" target="_blank" onMouseOver="self.status='<%= RS("hemsida")%>';return true" onMouseOut="self.status=' ';return true"><%=RS("namn")%></a></td>
  </tr>
  <tr>
    <td width="107">&nbsp;</td>
    <td><strong><font size="1" face="Verdana">(</font></strong><span class="style4"><font size="1" face="Verdana"><%=RS("klick")%></font> <font size="1" face="Verdana" class="style4">klick) [ <%=RS("kat")%> ] </font></span></td>
  </tr>
  <tr>
    <td width="107">&nbsp;</td>
    <td><%=RS("text")%></td>
  </tr>
  <tr>
    <td width="107">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</TABLE>

<%
RS.MoveNext
LOOP
RS.Close
Connect.Close
%>

</HTML>

Och så i conn.asp

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/lankar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
%>
Peter SMedlem sedan dec. 20025 483 inlägg
#8

Vad vill du åstadkomma med det rödmarkerade nedan?

SELECT * FROM lankar WHERE [red]key & namn[/red] LIKE '%" & Request.Form("sokord")& "%'

Vill du söka i key-kolumnen bör du ta bort '& namn'.

ExploitMedlem sedan nov. 2006107 inlägg
#9

tog bort detta så nur står det bara key men men det funkar endå inte som jag vill att det ska göra...

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

varSokOrd=Request.Form("sokord")
SQL = "SELECT * FROM lankar WHERE key & namn LIKE '%" & varSokord & "%'"

Detta är att rekommendera och skydda dig mot SQL-injections med

Så här ser min sök ut på frisök
set RS = objConn.Execute("Select * From tblUsers where username LIKE '%" & varUsername & "%' and inloggad = "& varChk &" ORDER BY vip = 1")

ExploitMedlem sedan nov. 2006107 inlägg
#11

oki.
gjorde detta. men kan man inte "blockera" sök knappen så att man måste skriva i nått för att söka o har man inte skrivit nått så händer det inget?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#12

Exploit skrev:

oki.
gjorde detta. men kan man inte "blockera" sök knappen så att man måste skriva i nått för att söka o har man inte skrivit nått så händer det inget?

Pseudokod

OM textrutevärde = "" SÅ
visa inget
ANNARS
Visa Sökknapp
SLUT OM

Smidigast är att ha det när man klickar på knappen som visar felmeddelande om att inget är inskrivet

ExploitMedlem sedan nov. 2006107 inlägg
#13

jaja skit samma fattar endå inget förutom att det ska vara en if sats jag får leta vidare på nätet...

Peter SMedlem sedan dec. 20025 483 inlägg
#14

Vad får du med

<!-- #include file = "adovbs.inc" -->
<!--#include virtual = "conn.asp"-->
<HTML><link href="style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
-->
</style>

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/lankar.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

sokord = trim(Request.Form("sokord") & "")
if sokord = "" then
  response.write "ange sökord"
  response.end
end if
SQL= "SELECT * FROM lankar WHERE key LIKE '%" & sokord & "%'"

Set RS=Connect.Execute (SQL)

If RS.EOF then
     response.Write "Ingen träff"
End if

Do Until RS.EOF

%>

<style type="text/css">
<!--
.style3 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
.style4 {color: #FFFFFF; font-weight: bold; }
-->
</style>
<p>&nbsp;</p>
<TABLE border='0' width='361'>
  <tr><td width="107"><img src="<%=RS("banner")%>" width="88" height="31" align="right"><br>
    <br>    <br>
</td>
    <td width="244"><a href="klick.asp?id=<%=RS("id")%>" target="_blank" onMouseOver="self.status='<%= RS("hemsida")%>';return true" onMouseOut="self.status=' ';return true"><%=RS("namn")%></a></td>
  </tr>
  <tr>
    <td width="107">&nbsp;</td>
    <td><strong><font size="1" face="Verdana">(</font></strong><span class="style4"><font size="1" face="Verdana"><%=RS("klick")%></font> <font size="1" face="Verdana" class="style4">klick) [ <%=RS("kat")%> ] </font></span></td>
  </tr>
  <tr>
    <td width="107">&nbsp;</td>
    <td><%=RS("text")%></td>
  </tr>
  <tr>
    <td width="107">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</TABLE>

<%
RS.MoveNext
LOOP
RS.Close
Connect.Close
%>

</HTML>

? Har du en äldre version av Access kan du testa att byta '%' mot '*'.

ExploitMedlem sedan nov. 2006107 inlägg
#15

Jag har Microsoft Offfice Access 2007 (Beta)

@ndersMedlem sedan juni 200032 969 inlägg
#16

... och funkade inte Peters kod?

Du borde också flytta ut css-koden och tabellhuvud och -slut utanför loopen.

137 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)