15. april 2005 - 08:30Der er
34 kommentarer og 1 løsning
søge i databasen
jeg har denne formular hvor man kan søge på 3 ting <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/database/db1.mdb") mode = Request.QueryString("mode") scriptname = Request.ServerVariables("SCRIPT_NAME") %>
<html> <head> <title></title> </head> <body>
<center><font face="verdana" color="black" font face="Geneva Verdana" font size= 5px>Søg</font> <table border=1 cellpadding=20 bgcolor=#E4E4E4> <td> <form name="myForm" method="get" action="/soeg_formular.asp" ENCTYPE="multipart/form-data" value="ID nummer"> Varenummer: <select name="vareNR" style="width:90px"> <% set rs = conn.execute("select * from varenummer order by id") do while not rs.eof response.write "<option value='"& rs("varenr") &"'>"& rs("varenr") rs.MoveNext loop %> </select> <INPUT TYPE="SUBMIT" VALUE="Søg"> </FORM>
<form name="myForm" method="get" action="/soeg_formular.asp" ENCTYPE="multipart/form-data" value="kunde nummer"> Kundenummer: <select name="idnummer" style="width:90px"> <% set rs = conn.execute("select * from fejl order by id") do while not rs.eof response.write "<option value='"& rs("id") &"'>"& rs("id") rs.MoveNext loop %> </select> <INPUT TYPE="SUBMIT" VALUE="Søg"> </FORM>
<form name="myForm" method="get" action="/soeg_formular.asp" ENCTYPE="multipart/form-data" value="kunde nummer"> Kundenummer: <select name="fuldfort" style="width:90px"> <% set rs = conn.execute("select * from fejl order by id") do while not rs.eof response.write "<option value='"& rs("ansvarlig") &"'>"& rs("ansvarlig") rs.MoveNext loop %> </select> <INPUT TYPE="SUBMIT" VALUE="Søg"> </FORM>
</body> </html>
og så denne side hvor svaret kommer. men jeg har nogle problemer mht. hvordan man bruger if ? = then
if request("vareN"") = true then Set RS = Conn.Execute("SELECT * FROM fejl WHERE varenummer=" & request.querystring("vareNR")) else end if
if request.querystring("idnummer") = true then Set RS = Conn.Execute("SELECT * FROM fejl WHERE idnummer=" & request.querystring("idnummer")) else end if
Det er dette her jeg hentyder til: if request("vareN"") = true then Set RS = Conn.Execute("SELECT * FROM fejl WHERE varenummer=" & request.querystring("vareNR")) else end if
if request.querystring("idnummer") = true then Set RS = Conn.Execute("SELECT * FROM fejl WHERE idnummer=" & request.querystring("idnummer")) else end if
if request("vareN"") = true then Set RS = Conn.Execute("SELECT * FROM fejl WHERE varenummer=" & request.querystring("vareNR")) elseif request.querystring("idnummer") = true then Set RS = Conn.Execute("SELECT * FROM fejl WHERE idnummer=" & request.querystring("idnummer")) end if --- sådan?
ahhh ok sådan her ---- if request.querystring("vareN") <> "" then Set RS = Conn.Execute("SELECT * FROM fejl WHERE varenummer=" & request.querystring("vareNR")) elseif request.querystring("idnummer") <> "" then Set RS = Conn.Execute("SELECT * FROM fejl WHERE idnummer=" & request.querystring("idnummer")) end if
if request.querystring("vareN") <> "" then Set RS = Conn.Execute("SELECT * FROM fejl WHERE varenummer='" & request.querystring("vareNR")&"'") elseif request.querystring("idnummer") <> "" then Set RS = Conn.Execute("SELECT * FROM fejl WHERE idnummer='" & request.querystring("idnummer")&"'") end if
prøver lige at forklare. har en formular hvor man kan søge på 3 ting og hvor den tager feltet med over i url'en i soeg.formular skal den så sætte RS afhængig af hvad der er den tager med over,(vareNR,id,fuldfort)
Ja det vil min kommentar 08:52:44 også gøre Det den siger er på dansk Hvis der er tekst i vareN så lav kode Ellers hvis der er tekst i idnummer så lav en anden kode
prøv sådan her og se hvad den skriver ud --- if request.querystring("vareN") <> "" then strSQL = "SELECT * FROM fejl WHERE varenummer='" & request.querystring("vareNR")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) elseif request.querystring("idnummer") <> "" then strSQL = "SELECT * FROM fejl WHERE idnummer='" & request.querystring("idnummer")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) end if
Kan også se at den hedder vareNR og ikke vareN --- if request.querystring("vareNR") <> "" then strSQL = "SELECT * FROM fejl WHERE varenummer='" & request.querystring("vareNR")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) elseif request.querystring("idnummer") <> "" then strSQL = "SELECT * FROM fejl WHERE idnummer='" & request.querystring("idnummer")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) end if
Hvis jeg fjerner '' omkring den første virker det fint på den første Jeg må hellere sige at jeg har 3 søgemuligheder vareNR : kun tal ID : kun tal Fulfort : bogstaver
prøv sådan her: ---- if request.querystring("vareNR"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE varenummer='" & request.querystring("vareNR")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) elseif request.querystring("idnummer"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE idnummer='" & request.querystring("idnummer")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) end if
sådan her virker nr1,og nr,3 men den skriver fejl i 2. hmmm prøver lige at eftertjekke... <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/database/db1.mdb") mode = Request.QueryString("mode") scriptname = Request.ServerVariables("SCRIPT_NAME")
if request.querystring("vareNR"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE varenummer=" & request.querystring("vareNR")&"" response.write(strSQL) Set RS = Conn.Execute(strSQL) elseif request.querystring("idnummer"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE idnummer=" & request.querystring("idnummer")&"" response.write(strSQL) Set RS = Conn.Execute(strSQL) elseif request.querystring("ansvarlig"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE ansvarlig='" & request.querystring("ansvarlig")&"'" response.write(strSQL) Set RS = Conn.Execute(strSQL) end if %>
Ok fandt ud af det elseif request.querystring("idnummer"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE id=" & request.querystring("id")&"" blev til elseif request.querystring("idnummer"&"") <> "" then strSQL = "SELECT * FROM fejl WHERE idnummer=" & request.querystring("id")&"" også virkede det. prøver lige at teste det på serveren.....
altså du skal finde ud af hvad dine felter i databasen hedder i alt det ovenstående har du ladet feltet i databasen hedde "idnummer" Nu skriver du at du har rettet det fra "id" til "idnummer" ...men det har det jo hele tiden været? request.querystring("id")? Den får du intet ud af med mindre du laver denne her om <select name="idnummer" style="width:90px">
det virker fint. har lige et spørgsmål. I den dropdownboks som man vælger søgemulighederne fra, er der tit flere felter med den samme værdi kan man gøre sådan at den kun skriver værdien en gang?
<form name="myForm" method="get" action="/soeg_formular.asp" ENCTYPE="multipart/form-data" value="kunde nummer"> Kundenummer: <select name="ansvarlig" style="width:90px"> <% set rs = conn.execute("select * from fejl order by id") do while not rs.eof response.write "<option value='"& rs("ansvarlig") &"'>"& rs("ansvarlig") rs.MoveNext loop %> </select> <INPUT TYPE="SUBMIT" VALUE="Søg"> </FORM>
du kan bruge distinct hvis du specificerer felterne <select name="ansvarlig" style="width:90px"> <% set rs = conn.execute("select Distinct ansvarlig from fejl order by id") do while not rs.eof response.write "<option value='"& rs("ansvarlig") &"'>"& rs("ansvarlig") rs.MoveNext loop %> </select>
kunne du ikke...det var underligt hvad hvis du gør sådan her <select name="ansvarlig" style="width:90px"> <% set rs = conn.execute("select Distinct ansvarlig from fejl order by ansvarlig") do while not rs.eof response.write "<option value='"& rs("ansvarlig") &"'>"& rs("ansvarlig") rs.MoveNext loop %> </select>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.