Avatar billede ger2001 Novice
15. april 2005 - 08:30 Der 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

<%
  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("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

%>
<html>
<head>
</head>
<title>Fejlrapport - Kjærulff</title>
<body bgcolor="white">

<%
Do
response.write "<table border=1 bordercolor=lightgrey bgcolor=white>"

response.write "<tr>"
response.write "<td border=1 width=100>ID nr.:</td>"
response.write "<td width=400>"
    Response.Write rs("id") & "<br>"
response.write "</td>"
response.write "</tr>"

response.write "<tr>"
response.write "<td border=1>Kunde:</td>"
response.write "<td width=400>"
    Response.Write rs("kundenummer") & "<br>"
response.write "</td>"
response.write "</tr>"

response.write "</table>"
response.write "<hr width=520 align=left color=darkblue>"
set rs2 = conn.execute("select * from filer where idnummer="& rs("id"))
  while not rs2.eof
  response.write "<a href="""& rs2("url") &""">"& rs2("url") &"</a>"
    response.write " | "
    rs2.movenext
  wend
  rs.MoveNext
Loop While Not rs.EOF
%>
</body>
</html>
Avatar billede ger2001 Novice
15. april 2005 - 08:31 #1
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

%>
Avatar billede busschou Praktikant
15. april 2005 - 08:33 #2
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?
Avatar billede ger2001 Novice
15. april 2005 - 08:36 #3
Kan man gøre sådan her på en eller anden måde:
if request("vareNR") = "findes i url'en" then
Avatar billede busschou Praktikant
15. april 2005 - 08:40 #4
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
Avatar billede ger2001 Novice
15. april 2005 - 08:43 #5
det virker kun på den første, hvis jeg prøver de andre skriver den.
No value given for one or more required parameters.
Avatar billede busschou Praktikant
15. april 2005 - 08:48 #6
hvor får du den fejl?
Hvis din url er www.blabla.dk?vareN=&idnummer=2
Så vil den første springes over fordi vareN = ""
Det samme gælder hvis din url er www.blabla.dk?idnummer=2
Så vil den også fejle fordi vareN = ""
Avatar billede ger2001 Novice
15. april 2005 - 08:48 #7
undskyld jeg havde lavet en fejl.
2. skriver den: Typer stemmer ikke overens: 'RS'
Avatar billede busschou Praktikant
15. april 2005 - 08:52 #8
det er din query fordi når du henter en querystring så er den en "streng" men i databasen er det tal..så skal der plinger ' omkring
Avatar billede busschou Praktikant
15. april 2005 - 08:52 #9
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
Avatar billede ger2001 Novice
15. april 2005 - 08:53 #10
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)
Avatar billede busschou Praktikant
15. april 2005 - 08:56 #11
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
Avatar billede ger2001 Novice
15. april 2005 - 08:57 #12
når jeg søger:
på den første:Datatyperne stemmer ikke overens i kriterieudtrykket.
på den anden:Typer stemmer ikke overens: 'RS'
Avatar billede busschou Praktikant
15. april 2005 - 08:59 #13
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
Avatar billede busschou Praktikant
15. april 2005 - 09:00 #14
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
Avatar billede ger2001 Novice
15. april 2005 - 09:00 #15
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
Avatar billede busschou Praktikant
15. april 2005 - 09:06 #16
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
Avatar billede busschou Praktikant
15. april 2005 - 09:07 #17
lige nu har du vist ingen sql hvis der søges på Fulfort vel?
Avatar billede ger2001 Novice
15. april 2005 - 09:21 #18
nej men det bare for at få at vide hvad jeg skal skrive hvis der står bogstaver istedet
Avatar billede ger2001 Novice
15. april 2005 - 09:25 #19
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
%>
Avatar billede ger2001 Novice
15. april 2005 - 09:26 #20
fejl på 2:
Typer stemmer ikke overens: 'RS'
/soeg_formular.asp, line 36
Avatar billede busschou Praktikant
15. april 2005 - 09:30 #21
strSQL = "SELECT * FROM fejl WHERE idnummer='" & request.querystring("idnummer")&"'"
Avatar billede busschou Praktikant
15. april 2005 - 09:30 #22
nå nej ikke sådan!
Avatar billede busschou Praktikant
15. april 2005 - 09:31 #23
hvad skriver den ud i din response.write(strSQL)?
Avatar billede ger2001 Novice
15. april 2005 - 09:32 #24
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.....
Avatar billede busschou Praktikant
15. april 2005 - 09:36 #25
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">
Avatar billede ger2001 Novice
15. april 2005 - 09:36 #26
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>
Avatar billede busschou Praktikant
15. april 2005 - 09:39 #27
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>
Avatar billede ger2001 Novice
15. april 2005 - 09:47 #28
når jeg gør det forsvinder mulighederne samt knappen
Avatar billede busschou Praktikant
15. april 2005 - 09:49 #29
prøv kigge lidt her
http://www.w3schools.com/sql/sql_select.asp
det burde virke så vidt jeg ser det
Avatar billede ger2001 Novice
15. april 2005 - 09:59 #30
Ok kunne bare ikke have order by på.  er der en anden måde at sortere på?
set rs = conn.execute("select distinct ansvarlig from fejl")
Avatar billede busschou Praktikant
15. april 2005 - 10:03 #31
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>
Avatar billede busschou Praktikant
15. april 2005 - 10:04 #32
altså sortere på ansvarlig i stedet for id
Avatar billede ger2001 Novice
15. april 2005 - 10:10 #33
ja du har igen ret....
lige det sidste spørgsmål. hvorfor skriver den søgeresultatet øverst f.eks
SELECT * FROM fejl WHERE id=207
"resten af siden"
Avatar billede ger2001 Novice
15. april 2005 - 10:11 #34
arghhh jeg fandt selv ud af det. selvfølgeligt for den skriver. response.write(strSQL)
Smid et svar så får du dine point..
Avatar billede busschou Praktikant
15. april 2005 - 10:18 #35
oki doki :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester