Avatar billede ponyboye Nybegynder
31. august 2004 - 07:24 Der er 76 kommentarer og
1 løsning

Fennec - Ponyboye

Hej fennec.

Du lavet for kort tid siden en søgning til mig og den var dejlig.
Nu har jeg vil lave den sådanne at der kunne søges på flere kategorier på samme tid og her er det gået galt.

Eagleeye har givet mig en masse hjælp til at få lavet dette og han/hun kan nok også hjælpe mig færdig, men hvorfor bruge en masse til på noget du måske nemt kunne se var galt.

Jeg smider lige min kode herunder.
Du sagde også at jeg skulle sige til hvis jeg ønsket at få hjælp til at få vist søgningen med forige side/næste side samt tal imellem. Så nu råber jeg om hjælp...HJÆLP...

<%
OpenDatabase
sql = ""
if Request.Form("textfield") <> "" then
    if sql = "" then
        sql = "where navn like '%"& Request.Form("textfield") &"%' "
    else
        sql = "and navn like '%"& Request.Form("textfield") &"%' "
    end if
end if
sql = ""
if Request.Form("textfield1") <> "" then
    if sql = "" then
        sql = "where in1 like '%"& Request.Form("textfield1") &"%' "
    else
        sql = "and in1 like '%"& Request.Form("textfield1") &"%' "
    end if
end if
if Request.Form("textfield2") <> "" then
    if sql = "" then
        sql = "where tid <= '"& Request.Form("textfield2") &"' "
    else
        sql = "and tid <= '"& Request.Form("textfield2") &"' "
    end if
end if
if Request.Form("textfield3") <> "" then
    if Request.Form("checkbox") <> "" then
        if sql = "" then
            sql = "where personer <= "& Request.Form("textfield3") &" "
        else
            sql = "and personer <= "& Request.Form("textfield3") &" "
        end if
    end if
    if Request.Form("checkbox2") <> "" then
        if sql = "" then
            sql = "where personer >= "& Request.Form("textfield3") &" "
        else
            sql = "and personer >= "& Request.Form("textfield3") &" "
        end if
    end if
end if
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("hojtidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & "'" & arr(i) & "' in (hojtid)"
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox4") <> "" then
    if Request.Form("emeIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("emmeIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & "'" & arr(i) & "' in (emme)"
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox5") <> "" then
    if Request.Form("katIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("katIDer"),",")
        for i=0 to ubound(arr)
        sql = sql & "'" & arr(i) & "' in (vare)"
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox6") <> "" then
    if Request.Form("maltidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("maltidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & "'" & arr(i) & "' in (kategoriid)"
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if
  set rs = conn.Execute("select opskrifter.* from opskrifter "& sql &" order by navn")
response.write "<table width='500' border='0' cellspacing='10' align='center'>"
f = 0
do while not rs.eof
  if f mod 3 = 0 then
    response.write "</tr><tr><td width='225'>"
  else
    response.write "<td width='225'>"
  end if

  strNavn = rs("navn")
  strLink = "<a href='visopskrift.asp?id=" & rs("id") & "'>" & strNavn & "</a>"
  response.write "<li>" & strLink & "</li><br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Tilberedningstid: "& rs("tid") & "<br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Antal personer: "& rs("personer") & "<br>"

  response.write "</td>"
  f = f + 1
  rs.MoveNext
loop
response.write "</tr>"
response.write "</table>"
CloseDatabase
%>
Avatar billede fennec Nybegynder
31. august 2004 - 08:06 #1
Lige et ? inden jeg går koden igennem.

Hvad er problemet med søgningen. Får du en fejl (hvilken??) eller de forkerte resultater?
Avatar billede ponyboye Nybegynder
31. august 2004 - 23:28 #2
jeg har problemer med at få vist resultet af søgningen. Og hvad jeg har lagt mærke til så er det i checkbox felterne den melder om fejl.

jeg vil gerne have at den kan kigge efter flere id´er i samme felt.
Dette er gjort ved at adskelle id´en med  , sådanne her: 1,4,10

og så vil jeg have den til at se at opskriften indenfor kategori hojtid passer på højtid med id 1,4,10

Lige nu får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/sogresultat.asp, line 142

ved at søge i feltet maltidIDer (checkbox6) og når det søges på de andre måder kommer der ikke noget resultet men heller ikke nogen fejl.

håber det var hvad du skulle bruge.
Avatar billede ponyboye Nybegynder
01. september 2004 - 11:34 #3
du kan hente databasen her: http://www.danskehojtider.dk/admin/opskriftdata.mdb
hvis du har brugfor det
Avatar billede fennec Nybegynder
01. september 2004 - 11:45 #4
Jeg kan ikke helt forstå hvorfor du laver en split() på dine request.form. Det har sikkert noget at gøre med hvordan formsiden ser ud, så den skal jeg nok lige se.

Det ville også være rart hvis du udskrev SQL-sætningen på skærmen lige inden du afvikler den. Det gør det nemmere at finde fejlen.

...
response.write "select opskrifter.* from opskrifter "& sql &" order by navn"
set rs = conn.Execute("select opskrifter.* from opskrifter "& sql &" order by navn")
...
Avatar billede ponyboye Nybegynder
01. september 2004 - 11:58 #5
så får jeg dette:

select opskrifter.* from opskrifter where ('12' in (kategoriid) OR ' 1' in (kategoriid)) order by navn
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/sogresultat.asp, line 143


Min form ser sådan ud:

<form name="form1" method="post" action="sogresultat.asp">
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><strong><font color="#000000">::
                          Søg efter opskrift ::</font></strong></td>
                      </tr>
                    </table>
                    <br>&nbsp;<input type="text" name="textfield" size="100" class="mailform" >
                    <br><hr size="1" noshade><br>
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>::
                          Søg opskrifter efter ingedienser ::</strong></font>
                        </td>
                      </tr>
                    </table>
                   
                      <br>&nbsp;<input type="text" name="textfield1" size="100" class="mailform" ><br><hr size="1" noshade><br>
                   
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td height="12" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>:: Max tilberednings tid ::</strong></font></td>
                      </tr>
                    </table><br>&nbsp;<input type="text" name="textfield2" size="100" class="mailform" >
                    <br><hr size="1" noshade><br>
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>::
                          Antal personer ::</strong></font></td>
                      </tr>
                    </table>
                                        <br>&nbsp;<input type="text" name="textfield3" size="100" class="mailform"  efter antal max. eller min. personer.">
                      <br>
                    &nbsp;<strong>Max antal:</strong>
                    <input type="checkbox" name="checkbox" value="checkbox">
                    <strong>Min antal:</strong>
                    <input type="checkbox" name="checkbox2" value="checkbox"><br><hr size="1" noshade><br>
                   
                   
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>:: Søg
                          indenfor kategori ::</strong></font></td>
                      </tr>
                    </table>
                    <p>&nbsp;
                    <table width="600" border="0">
                      <tr>
                        <td width="150" height="20"><strong><font color="#000000">Højtider:</font></strong>
                          <input type="checkbox" name="checkbox3" value="checkbox" onClick="if(document.getElementById('hojtid').style.display=='none'){document.getElementById('hojtid').style.display='block'}else{document.getElementById('hojtid').style.display='none';}"></td>
                        <td width="130" height="20">&nbsp;<strong><font color="#000000">Lande:</font></strong>
                          <input type="checkbox" name="checkbox4" value="checkbox" onClick="if(document.getElementById('emme').style.display=='none'){document.getElementById('emme').style.display='block'}else{document.getElementById('emme').style.display='none';}"></td>
                        <td width="170" height="20">&nbsp;<strong><font color="#000000">Kategori:</font></strong>
                          <input type="checkbox" name="checkbox5" value="checkbox" onClick="if(document.getElementById('kategori').style.display=='none'){document.getElementById('kategori').style.display='block'}else{document.getElementById('kategori').style.display='none';}"></td>
                        <td width="150" height="20">&nbsp;<strong><font color="#000000">Måltid</font></strong>
                          <input type="checkbox" name="checkbox6" value="checkbox"onClick="if(document.getElementById('maltid').style.display=='none'){document.getElementById('maltid').style.display='block'}else{document.getElementById('maltid').style.display='none';}"></td>
                      </tr>
                    </table>
                    <p>&nbsp;
<hr size="1" noshade></p>
  <table width="600" border="0">
  <tr>
    <td width="150" valign="top"><div id="hojtid" class="formkategori" style="display:'none' ">
                            <% OpenDatabase
    set rs = conn.Execute("select * from kategorier Order By hojtidnavn")
        do while not rs.eof
            response.write "<input type=""checkbox"" name=""hojtidIDer"" value="""& rs("hojtid") &""">"& rs("hojtidnavn")
            response.write "<br>"
            rs.MoveNext
        loop
       
        %>
                          </div>
  </td>
   
    <td width="130" valign="top"><div id="emme" class="formkategori" style="display:'none'">
    <% set rs = conn.Execute("select * from kategori1 Order By emmenavn")
        do while not rs.eof
            response.write "<input type=""checkbox"" name=""emmeIDer"" value="""& rs("emme") &""">"& rs("emmenavn")
            response.write "<br>"
            rs.MoveNext
        loop
        %>
  </div>
  </td>
   
    <td width="170" valign="top"><div id="kategori" class="formkategori" style="display:'none'">
    <%
   
    set rs = conn.Execute("select * from kategori2 Order By varenavn")
              do while not rs.eof
            response.write "<input type=""checkbox"" name=""katIDer"" value="""& rs("vare") &""">"& rs("varenavn")
            response.write "<br>"
      rs.MoveNext
        loop
       
        %>
  </div>
  </td>
 
    <td width="150" valign="top"><div id="maltid" class="formkategori" style="display:'none'">
    <%
        set rs = conn.Execute("select * from kategori3 Order By kategori")
              do while not rs.eof
            response.write "<input type=""checkbox"" name=""maltidIDer"" value="""& rs("kategoriid") &""">"& rs("kategori")
            response.write "<br>"
      rs.MoveNext
        loop
        CloseDatabase
        %>
  </div>
 
  </td>
  </tr>
</table>
 
                    <div align="center"><br></p>
                      <input type="image" value="form1" src="images/sogning.jpg" width="102" height="20">
                    </div>
                  </form>
Avatar billede fennec Nybegynder
01. september 2004 - 12:02 #6
Der er jo database opslag :(
Kan du ikke smide en "vis kilde" kode ind i stedet. Så er jeg fri for at skal til at slutte database til siden...
Avatar billede ponyboye Nybegynder
01. september 2004 - 12:10 #7
<HTML>
<HEAD>
<TITLE></TITLE>
<link rel=stylesheet type="text/css" href="gogo.css">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
    <TD WIDTH="100%" HEIGHT="175" BGCOLOR="#FFFFFF"> <table width="100%" border="0" cellspacing="3">
        <tr>
          <td height="136"><img src="images/logo.gif">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
     
    </TD>
</TR>
<TR>
    <TD WIDTH="100%" HEIGHT="49" BACKGROUND="images/fon_bot.gif" ALIGN="center">&nbsp; </TD>
</TR>
<TR>
<TD WIDTH="100%" HEIGHT="500" BGCOLOR="#FFFFFF">

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%" HEIGHT="519">
<TR>
<TD WIDTH="77%" height="519" VALIGN="top" BGCOLOR="#FFFFFF">

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%" HEIGHT="100%">
<TR>
                <TD WIDTH="25%" HEIGHT="500" VALIGN="middle" ALIGN="center" ROWSPAN="2">&nbsp; </TD>               
                <TD WIDTH="600" HEIGHT="30" VALIGN="top" ALIGN="center"><br>
                  <br> </TD>
</TR>
<TR>
<TD WIDTH="600" HEIGHT="407" VALIGN="top"><hr width="100%" size="1">
                  <br><br>
select opskrifter.* from opskrifter  where ('12' in (kategoriid) OR ' 1' in (kategoriid)) order by navn <font face="Arial" size=2>
<p>Microsoft OLE DB Provider for ODBC Drivers</font> <font face="Arial" size=2>error '80040e10'</font>
<p>
<font face="Arial" size=2>[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.</font>
<p>
<font face="Arial" size=2>/sogresultat.asp</font><font face="Arial" size=2>, line 143</font>
Avatar billede ponyboye Nybegynder
01. september 2004 - 12:11 #8
var det du ville have?
Avatar billede ponyboye Nybegynder
01. september 2004 - 12:11 #9
ellers ved jeg ikke hvad det skulle være.
Avatar billede fennec Nybegynder
01. september 2004 - 12:12 #10
Ja ok, måske min fejl :o)
En "vis kilde" af form siden....
Avatar billede fennec Nybegynder
01. september 2004 - 12:39 #11
Mit første gæt er stadig at det er dine split() der er problemet. De burde se sådan ud:

'"hojtid IN (2,4,5)" metoden
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where "
        else
          sql = sql & " and "
        end if
    sql = sql & "hojtid IN ("& Request.Form("hojtidIDer") &")"
    end if
end if

eller:
'"(hojtid=2 OR hojtid=4 OR hojtid=5)" metoden
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("hojtidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " hojtid="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if
Avatar billede ponyboye Nybegynder
01. september 2004 - 14:17 #12
<HTML>
<HEAD>
<TITLE></TITLE>
<link href="gogo.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
    <TD WIDTH="100%" HEIGHT="175" BGCOLOR="#FFFFFF"> <table width="100%" border="0" cellspacing="3">
        <tr>
          <td height="136"><img src="images/logo.gif">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
     
    </TD>
</TR>
<TR>
    <TD WIDTH="100%" HEIGHT="49" BACKGROUND="images/fon_bot.gif" ALIGN="center">&nbsp; </TD>
</TR>
<TR>
<TD WIDTH="100%" HEIGHT="500" BGCOLOR="#FFFFFF">

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%" HEIGHT="519">
<TR>
<TD WIDTH="77%" height="519" VALIGN="top" BGCOLOR="#FFFFFF">

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%" HEIGHT="100%">
<TR>
                <TD WIDTH="25%" HEIGHT="500" VALIGN="middle" ALIGN="center" ROWSPAN="2">&nbsp; </TD>               
                <TD WIDTH="600" HEIGHT="30" VALIGN="top" ALIGN="center"><br>
                  <br>
                  <br> </TD>
</TR>
<TR>
<TD WIDTH="600" HEIGHT="407" VALIGN="top">
<form name="form1" method="post" action="sogresultat.asp">
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><strong><font color="#000000">::
                          Søg efter opskrift ::</font></strong></td>
                      </tr>
                    </table>
                    <br>&nbsp;<input type="text" name="textfield" size="100" class="mailform" >
                    <br><hr size="1" noshade><br>
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>::
                          Søg opskrifter efter ingedienser ::</strong></font>
                        </td>
                      </tr>
                    </table>
                   
                      <br>&nbsp;<input type="text" name="textfield1" size="100" class="mailform" ><br><hr size="1" noshade><br>
                   
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td height="12" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>:: Max tilberednings tid ::</strong></font></td>
                      </tr>
                    </table><br>&nbsp;<input type="text" name="textfield2" size="100" class="mailform" >
                    <br><hr size="1" noshade><br>
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>::
                          Antal personer ::</strong></font></td>
                      </tr>
                    </table>
                                        <br>&nbsp;<input type="text" name="textfield3" size="100" class="mailform"  efter antal max. eller min. personer.">
                      <br>
                    &nbsp;<strong>Max antal:</strong>
                    <input type="checkbox" name="checkbox" value="checkbox">
                    <strong>Min antal:</strong>
                    <input type="checkbox" name="checkbox2" value="checkbox"><br><hr size="1" noshade><br>
                   
                   
                    <table width="100%" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
                      <tr>
                        <td bordercolor="#FFFFFF" bgcolor="#FFFFFF"><font color="#000000"><strong>:: Søg
                          indenfor kategori ::</strong></font></td>
                      </tr>
                    </table>
                    <p>&nbsp;
                    <table width="600" border="0">
                      <tr>
                        <td width="150" height="20"><strong><font color="#000000">Højtider:</font></strong>
                          <input type="checkbox" name="checkbox3" value="checkbox" onClick="if(document.getElementById('hojtid').style.display=='none'){document.getElementById('hojtid').style.display='block'}else{document.getElementById('hojtid').style.display='none';}"></td>
                        <td width="130" height="20">&nbsp;<strong><font color="#000000">Lande:</font></strong>
                          <input type="checkbox" name="checkbox4" value="checkbox" onClick="if(document.getElementById('emme').style.display=='none'){document.getElementById('emme').style.display='block'}else{document.getElementById('emme').style.display='none';}"></td>
                        <td width="170" height="20">&nbsp;<strong><font color="#000000">Kategori:</font></strong>
                          <input type="checkbox" name="checkbox5" value="checkbox" onClick="if(document.getElementById('kategori').style.display=='none'){document.getElementById('kategori').style.display='block'}else{document.getElementById('kategori').style.display='none';}"></td>
                        <td width="150" height="20">&nbsp;<strong><font color="#000000">Måltid</font></strong>
                          <input type="checkbox" name="checkbox6" value="checkbox"onClick="if(document.getElementById('maltid').style.display=='none'){document.getElementById('maltid').style.display='block'}else{document.getElementById('maltid').style.display='none';}"></td>
                      </tr>
                    </table>
                    <p>&nbsp;
<hr size="1" noshade></p>
  <table width="600" border="0">
  <tr>
    <td width="150" valign="top"><div id="hojtid" class="formkategori" style="display:'none' ">
                            <input type="checkbox" name="hojtidIDer" value="3">Fastelavn<br><input type="checkbox" name="hojtidIDer" value="9">Halloween<br><input type="checkbox" name="hojtidIDer" value="5">Helligtrekonger<br><input type="checkbox" name="hojtidIDer" value="1">Jul Aften<br><input type="checkbox" name="hojtidIDer" value="7">Mors & Fars Dag<br><input type="checkbox" name="hojtidIDer" value="11">Mortens aften<br><input type="checkbox" name="hojtidIDer" value="4">Nytår<br><input type="checkbox" name="hojtidIDer" value="10">Pinse<br><input type="checkbox" name="hojtidIDer" value="2">Påske<br><input type="checkbox" name="hojtidIDer" value="8">Sankt Hans<br><input type="checkbox" name="hojtidIDer" value="6">Valentinsdag<br>
                          </div>
  </td>
   
    <td width="130" valign="top"><div id="emme" class="formkategori" style="display:'none'">
    <input type="checkbox" name="emmeIDer" value="1">Afrikansk<br><input type="checkbox" name="emmeIDer" value="2">Amerikansk<br><input type="checkbox" name="emmeIDer" value="22">Arabisk<br><input type="checkbox" name="emmeIDer" value="3">Asiatisk<br><input type="checkbox" name="emmeIDer" value="4">Australsk<br><input type="checkbox" name="emmeIDer" value="5">Belgisk<br><input type="checkbox" name="emmeIDer" value="6">Bulgarsk<br><input type="checkbox" name="emmeIDer" value="7">Engelsk<br><input type="checkbox" name="emmeIDer" value="25">Finsk<br><input type="checkbox" name="emmeIDer" value="8">Fransk<br><input type="checkbox" name="emmeIDer" value="26">Færøsk<br><input type="checkbox" name="emmeIDer" value="9">Græsk<br><input type="checkbox" name="emmeIDer" value="27">Grønlandsk<br><input type="checkbox" name="emmeIDer" value="10">Hollandsk<br><input type="checkbox" name="emmeIDer" value="23">Iransk<br><input type="checkbox" name="emmeIDer" value="11">Irsk<br><input type="checkbox" name="emmeIDer" value="28">Islandsk<br><input type="checkbox" name="emmeIDer" value="12">Italiensk<br><input type="checkbox" name="emmeIDer" value="13">Jugoslavisk<br><input type="checkbox" name="emmeIDer" value="29">Norsk<br><input type="checkbox" name="emmeIDer" value="14">Polsk<br><input type="checkbox" name="emmeIDer" value="15">Portugisisk<br><input type="checkbox" name="emmeIDer" value="16">Russisk<br><input type="checkbox" name="emmeIDer" value="17">Schweizisk<br><input type="checkbox" name="emmeIDer" value="18">Spansk<br><input type="checkbox" name="emmeIDer" value="30">Svensk<br><input type="checkbox" name="emmeIDer" value="19">Tjekkisk<br><input type="checkbox" name="emmeIDer" value="24">Tyrkisk<br><input type="checkbox" name="emmeIDer" value="20">Tysk<br><input type="checkbox" name="emmeIDer" value="21">Ungarsk<br>
  </div>
  </td>
   
    <td width="170" valign="top"><div id="kategori" class="formkategori" style="display:'none'">
    <input type="checkbox" name="katIDer" value="11">Brune Saucer<br><input type="checkbox" name="katIDer" value="4">Brune Supper<br><input type="checkbox" name="katIDer" value="30">Brød & Bageværk<br><input type="checkbox" name="katIDer" value="7">Créme Supper<br><input type="checkbox" name="katIDer" value="8">Danske Supper<br><input type="checkbox" name="katIDer" value="18">Fars Retter<br><input type="checkbox" name="katIDer" value="19">Fiske Garniturer<br><input type="checkbox" name="katIDer" value="13">Fiske Saucer<br><input type="checkbox" name="katIDer" value="24">Fjerkræ Retter<br><input type="checkbox" name="katIDer" value="10">Grund Saucer<br><input type="checkbox" name="katIDer" value="26">Grønt Retter<br><input type="checkbox" name="katIDer" value="31">Kager<br><input type="checkbox" name="katIDer" value="21">kalvekød´s Retter<br><input type="checkbox" name="katIDer" value="2">Klare Supper<br><input type="checkbox" name="katIDer" value="29">Kolde Desserter<br><input type="checkbox" name="katIDer" value="15">Kolde Saucer<br><input type="checkbox" name="katIDer" value="16">Kolde Smør Saucer<br><input type="checkbox" name="katIDer" value="3">Kolde Supper<br><input type="checkbox" name="katIDer" value="22">Lamme & Fåre Retter<br><input type="checkbox" name="katIDer" value="20">Oksekød´s Retter<br><input type="checkbox" name="katIDer" value="5">Puré Supper<br><input type="checkbox" name="katIDer" value="27">Ris & Mel retter<br><input type="checkbox" name="katIDer" value="14">Specielle Saucer<br><input type="checkbox" name="katIDer" value="1">Suppe Garniturer<br><input type="checkbox" name="katIDer" value="23">Svinekød´s Retter<br><input type="checkbox" name="katIDer" value="32">Syltning<br><input type="checkbox" name="katIDer" value="9">Udenlanske Supper<br><input type="checkbox" name="katIDer" value="28">Varme Desserter<br><input type="checkbox" name="katIDer" value="12">Velouté Saucer<br><input type="checkbox" name="katIDer" value="6">Velouté Supper<br><input type="checkbox" name="katIDer" value="25">Vildt Retter<br><input type="checkbox" name="katIDer" value="17">Ægge Retter<br>
  </div>
  </td>
 
    <td width="150" valign="top"><div id="maltid" class="formkategori" style="display:'none'">
    <input type="checkbox" name="maltidIDer" value="12">Bageværk<br><input type="checkbox" name="maltidIDer" value="1">Forret<br><input type="checkbox" name="maltidIDer" value="5">Frokost<br><input type="checkbox" name="maltidIDer" value="2">Hovedret<br><input type="checkbox" name="maltidIDer" value="13">Kager<br><input type="checkbox" name="maltidIDer" value="10">Kold Desserter<br><input type="checkbox" name="maltidIDer" value="4">Morgenmad<br><input type="checkbox" name="maltidIDer" value="11">Natmad<br><input type="checkbox" name="maltidIDer" value="6">Natmad<br><input type="checkbox" name="maltidIDer" value="9">Salater<br><input type="checkbox" name="maltidIDer" value="8">Saucer<br><input type="checkbox" name="maltidIDer" value="7">Suppe<br><input type="checkbox" name="maltidIDer" value="3">Varm Desserter<br>
  </div>
 
  </td>
  </tr>
</table>
 
                    <div align="center"><br></p>
                      <input type="image" value="form1" src="images/sogning.jpg" width="102" height="20">
                    </div>
                  </form><br><br><table width="100%" border="0" cellspacing="5" bgcolor="#FFFFFF">
  <tr>
    <td width="35">&nbsp;</td>
    <td width="498" align="right" valign="top"><a href="java script:history.go(-1)" title='Gå tilbage' >Tilbage</a></td>
    <td width="50" align="right" valign="top"><a href="#top" title='Gå til toppen' >Toppen</a></td>
  </tr>
</table>
                 
                </TD>
</TR>
</TABLE>
          </TD>
<TD WIDTH="23%" ALIGN="right">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="200" HEIGHT="100%">
                <TD WIDTH="100" height="100%" VALIGN="top" BACKGROUND="images/sbg.gif">
                  <IMG SRC="gp.gif" WIDTH="1" HEIGHT="1"></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
     
    </TD>
</TR>
<TR>

</TR>
</TABLE>
</BODY>
</HTML>
Avatar billede fennec Nybegynder
01. september 2004 - 14:23 #13
Så stemmer det. Du burde kunne bruge en to metoder jeg har lavet i post "01/09-2004 12:39:26"

Det skal så overføres på alle de andre CheckBox's (checkbox3,checkbox4,checkbox5 og checkbox6)
Avatar billede ponyboye Nybegynder
01. september 2004 - 16:18 #14
jo men er der ikke forud bestemt nogle id´er i disse:

'"(hojtid=2 OR hojtid=4 OR hojtid=5)" metoden
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("hojtidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " hojtid="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if


eller

'"hojtid IN (2,4,5)" metoden
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where "
        else
          sql = sql & " and "
        end if
    sql = sql & "hojtid IN ("& Request.Form("hojtidIDer") &")"
    end if
end if
Avatar billede fennec Nybegynder
01. september 2004 - 16:29 #15
Nej.

'"(hojtid=2 OR hojtid=4 OR hojtid=5)" metoden
'"hojtid IN (2,4,5)" metoden

... er bare taget med så du kunen se hvordan den enkelte funktion formaterede teksten. Hvis du har valgt nogle hojtidIDer-checkbox'ne på form siden, får du en request.form som er en kommaseperearet liste. Denne bliver så splittet op eller indsat som den er, afhængig af hvilken metode du vælger at bruge.
Avatar billede ponyboye Nybegynder
01. september 2004 - 16:31 #16
hvad for en så bedst?
Avatar billede ponyboye Nybegynder
01. september 2004 - 16:38 #17
jeg har prøvet at indsætte:

if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("hojtidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " hojtid="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if


Men jeg får endnu den samme fejl:


<%
OpenDatabase
sql = ""
if Request.Form("textfield") <> "" then
    if sql = "" then
        sql = "where navn like '%"& Request.Form("textfield") &"%' "
    else
        sql = "and navn like '%"& Request.Form("textfield") &"%' "
    end if
end if
sql = ""
if Request.Form("textfield1") <> "" then
    if sql = "" then
        sql = "where in1 like '%"& Request.Form("textfield1") &"%' "
    else
        sql = "and in1 like '%"& Request.Form("textfield1") &"%' "
    end if
end if
if Request.Form("textfield2") <> "" then
    if sql = "" then
        sql = "where tid <= '"& Request.Form("textfield2") &"' "
    else
        sql = "and tid <= '"& Request.Form("textfield2") &"' "
    end if
end if
if Request.Form("textfield3") <> "" then
    if Request.Form("checkbox") <> "" then
        if sql = "" then
            sql = "where personer <= "& Request.Form("textfield3") &" "
        else
            sql = "and personer <= "& Request.Form("textfield3") &" "
        end if
    end if
    if Request.Form("checkbox2") <> "" then
        if sql = "" then
            sql = "where personer >= "& Request.Form("textfield3") &" "
        else
            sql = "and personer >= "& Request.Form("textfield3") &" "
        end if
    end if
end if
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("hojtidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " hojtid="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox4") <> "" then
    if Request.Form("emeIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("emeIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " emme="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox5") <> "" then
    if Request.Form("katIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("katIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " vare="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox6") <> "" then
    if Request.Form("maltidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("maltidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " kategoriid="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if

set rs = conn.Execute("select opskrifter.* from opskrifter "& sql &" order by navn")
response.write "<table width='500' border='0' cellspacing='10' align='center'>"
f = 0
do while not rs.eof
  if f mod 3 = 0 then
    response.write "</tr><tr><td width='225'>"
  else
    response.write "<td width='225'>"
  end if

  strNavn = rs("navn")
  strLink = "<a href='visopskrift.asp?id=" & rs("id") & "'>" & strNavn & "</a>"
  response.write "<li>" & strLink & "</li><br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Tilberedningstid: "& rs("tid") & "<br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Antal personer: "& rs("personer") & "<br>"

  response.write "</td>"
  f = f + 1
  rs.MoveNext
loop
response.write "</tr>"
response.write "</table>"
CloseDatabase
%>
Avatar billede ponyboye Nybegynder
01. september 2004 - 16:42 #18
den siger bare at der er fejl i denne lijne:

set rs = conn.Execute("select opskrifter.* from opskrifter "& sql &" order by navn")
Avatar billede fennec Nybegynder
01. september 2004 - 16:43 #19
Jeg synes selvfølgelig min er bedst, da du så ikke skal til at splitte noget op, tilgængæld er jeg ikke sikkert på at alle databaser kan bruge "kolonne IN (talrække)" funktionen, men MySQL, MSSQL og Access kan, så jeg vil tro at det fleste andre også kan.

Udskriv SQL sætningen også inden du bruger den, ellers er det svært at se hvor fejlen er.

response.write "select opskrifter.* from opskrifter "& sql &" order by navn"
set rs = conn.Execute("select opskrifter.* from opskrifter "& sql &" order by navn")
Avatar billede ponyboye Nybegynder
01. september 2004 - 16:44 #20
men udfylder jeg ikkenogen af felterne så kan den godt finde alle opskrifterne i databasen.
Avatar billede ponyboye Nybegynder
01. september 2004 - 17:46 #21
select opskrifter.* from opskrifter where kategoriid IN (12, 1, 3) order by navn
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/sogresultat.asp, line 124
Avatar billede ponyboye Nybegynder
01. september 2004 - 17:46 #22
og i hojtid:

select opskrifter.* from opskrifter where hojtid IN (3, 1, 6) order by navn
Avatar billede ponyboye Nybegynder
01. september 2004 - 17:47 #23
ellers det samme
Avatar billede fennec Nybegynder
02. september 2004 - 08:47 #24
Det er mærkeligt. Der ser ikke ud til at være en fejl i det to SQL-sætninger. Kan du køre dem i Access's forespørgsel???
Avatar billede ponyboye Nybegynder
02. september 2004 - 10:45 #25
mener du som rs hojtider
Avatar billede fennec Nybegynder
02. september 2004 - 11:15 #26
Nej. Åben databasen i Access >> forespørgsel >> designvisning >> Vælg SQl-visning (den første knap på menulinjen)

Så kan du indtaste SQL-sætninger.
Avatar billede ponyboye Nybegynder
02. september 2004 - 13:09 #27
ja og hvad skal jeg der?

navn = tekst
vare = notet
emme = notet
kategori = notet
hojtid = notet
fremgang = notet
tid = notet
personer = tal
af = tekst
tilbe = teskt
godkendt = ja/nej
in1 = notet
Avatar billede fennec Nybegynder
02. september 2004 - 13:47 #28
Jeg tror ikke du er i SQL visning endnu.
Du skal ind og lave en forespørgsel, der kan man ikke vælge SQl-visning inden man er kommet helt ind i designvisning. Så er der en "multi" knap hvor man kan vælge SQl-visning (samt et par andre) i stedet. Du kan også højreklikke i vinduet med tabellerne (på baggrunden) i designvisning. Så skulle SQL'en også være en mulighed.
Avatar billede ponyboye Nybegynder
02. september 2004 - 15:42 #29
der er ikke noget der hedder SQl-visning der hvor du siger.

se her: www.danskehojtider.d/access.jpg
Avatar billede ponyboye Nybegynder
02. september 2004 - 15:45 #30
Avatar billede fennec Nybegynder
02. september 2004 - 15:55 #31
Avatar billede ponyboye Nybegynder
02. september 2004 - 16:34 #32
ja ja der kan man bare se. Hvad var det så jeg skulle der inde?
Avatar billede ponyboye Nybegynder
02. september 2004 - 16:35 #33
for det hat da aldrig prøvet før
Avatar billede fennec Nybegynder
02. september 2004 - 16:44 #34
select opskrifter.* from opskrifter where kategoriid IN (12, 1, 3) order by navn

og
select opskrifter.* from opskrifter where hojtid IN (3, 1, 6) order by navn

de to skulle gerne kunne køre der.

SQL-visning er et godt værktøj til at lave avanceret forspørgsler. Det er også stedet hvor man kan teste sine SQL-sætninger fra ASP. Det er nemlig lidt hurtigere at ændre/tilpasse sætningerne her indtil de virker, også lave ændringerne i ASP.
Avatar billede fennec Nybegynder
03. september 2004 - 08:33 #35
Har lige opdaget noget. Du har gemt hojtid, kategori... som notat felter, også virker det ikke på denne måde. Jeg går ud fra at de også indeholder en kommasepareret liste.... Jeg troede det var et talfelt med et enkelt tal i.

Da du så har en "mange til mange" relation mellem opskrifter og hojtider, ville man normalt lave en tabel (hoj2op) til at knytte de to tabeller sammen.

opskrifter:
id = autonummer (primær nøgle)
navn = tekst
fremgang = notet
tid = notet
personer = tal
af = tekst
tilbe = tekst
godkendt = ja/nej
in1 = notet

hojtider:
id = autonummer (primær nøgle)
navn = tekst

hoj2op
opID = tal
hojID = tal

Det virker selvfølgelig stadig på den anden måde, men det er tids/resursekrævende at søge tekst igennem, som man bliver nød til på den måde det er nu. Nu forstår jeg også hvad det er Eagleeye har lavet, det gav nemlig ikke mening før. Den skal du tilbage til, hvis du ikke vil lave din database om.
Avatar billede ponyboye Nybegynder
04. september 2004 - 08:59 #36
Så skal op oprette en ny tabel med navnet hoj2op og felterne opID = tal , hojID = tal
jeg har jo 3 andre der så også skal laves dette til.

Disse har indekolder tal, vil det ikke være det samme at lave dem om så felterne kommer til at hede tal?

vare = notet
emme = notet
kategori = notet
hojtid = notet
Avatar billede ponyboye Nybegynder
05. september 2004 - 01:21 #37
jeg har aldrig prøvet at lave relationer før
Avatar billede fennec Nybegynder
05. september 2004 - 17:57 #38
Jo, det er det samme med dem, men du får slet ikke nogle felter på din opskrift tabel som hedder vare, emme, kategori og hojtid. I stedet knyttes opskrifts-tabellen til højtids-tabellen i hoj2op-tabellen med opskriftens-ID og højtidens-ID.
Avatar billede ponyboye Nybegynder
05. september 2004 - 20:16 #39
der må du hjælpe mig... Er der ikke et sted jeg kan læse om relationer i databaser og hvad det kan og dens fordele?

Og så bliver du nok nød til at hjælpe mig i gemmen dette.
Avatar billede fennec Nybegynder
06. september 2004 - 09:39 #40
Jeg har lavet den her. Har også tilføjet relationer, så der ikke kan indsættes forkert date i op2katX tabellerne. Jeg har bruge ID felterne i stedet for den ekstra kolonne du havde lavet.

http://www.athena-netjournal.dk/opskriftdata.mdb
Avatar billede fennec Nybegynder
06. september 2004 - 09:54 #41
... Man siger man normaliserer databasen til en normalform når man gør dette. Der eksistere 3 normalformer. 1 er den dårligste hvor alle data er i en tabel og 3 er den bedste hvor data er del ud i tabeller, så der ikke er gentagelser. Normalt ender man med en database på 2.5 normalform, så man tilader en hvis gentagelse. Det kan f.eks være at man gemmer postnummer og by navn på en person. Hvis det skulle være helt rigtigt, ville man kun gemme postnummeret også have en tabel hvor postnummeret blev knyttet til et bynavn.

Jeg har prøvet at finde et sted på nettet hvor de forklarer hvad det er, men har kun fundet en masse små artikler, som ikke var helt gode. Du kan jo prøve at søge på google efter normalform og database.
Avatar billede ponyboye Nybegynder
06. september 2004 - 10:36 #42
hvad så med udtræk metoden?
Avatar billede ponyboye Nybegynder
06. september 2004 - 10:43 #43
lige nu bruger jeg denne:

if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        arr=split(Request.Form("hojtidIDer"),",")
        for i=0 to ubound(arr)
          sql = sql & " hojtid="& arr(i) &" "
          if i<ubound(arr) then sql = sql & " OR "
        next
        sql = sql & ")"
    end if
end if
Avatar billede fennec Nybegynder
06. september 2004 - 10:54 #44
Det skal laves lidt om. Nu skal du nemlig også til at joine tabeller. Man kunne bare lave et "left outer join" på de fire op2katX tabeller, men det mest rigtige er at lave et "inner join" hvis den skal med.

<%
OpenDatabase
sql = ""
if Request.Form("textfield") <> "" then
    if sql = "" then
        sql = "where navn like '%"& Request.Form("textfield") &"%' "
    else
        sql = "and navn like '%"& Request.Form("textfield") &"%' "
    end if
end if
sql = ""
if Request.Form("textfield1") <> "" then
    if sql = "" then
        sql = "where in1 like '%"& Request.Form("textfield1") &"%' "
    else
        sql = "and in1 like '%"& Request.Form("textfield1") &"%' "
    end if
end if
if Request.Form("textfield2") <> "" then
    if sql = "" then
        sql = "where tid <= '"& Request.Form("textfield2") &"' "
    else
        sql = "and tid <= '"& Request.Form("textfield2") &"' "
    end if
end if
if Request.Form("textfield3") <> "" then
    if Request.Form("checkbox") <> "" then
        if sql = "" then
            sql = "where personer <= "& Request.Form("textfield3") &" "
        else
            sql = "and personer <= "& Request.Form("textfield3") &" "
        end if
    end if
    if Request.Form("checkbox2") <> "" then
        if sql = "" then
            sql = "where personer >= "& Request.Form("textfield3") &" "
        else
            sql = "and personer >= "& Request.Form("textfield3") &" "
        end if
    end if
end if
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2kat.katID IN ("& Request.Form("hojtidIDer")  &")"
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox4") <> "" then
    if Request.Form("emeIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2kat1.katID IN ("& Request.Form("emeIDer")  &")"
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox5") <> "" then
    if Request.Form("katIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2kat3.katID IN ("& Request.Form("katIDer")  &")"
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox6") <> "" then
    if Request.Form("maltidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2kat2.katID IN ("& Request.Form("maltidIDer")  &")"
        sql = sql & ")"
    end if
end if

MySqlTabler = "opskrifter"
if Request.Form("checkbox3") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2kat on op2kat.opID=opskrifter.id)"
end if
if Request.Form("checkbox4") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2kat1 on op2kat1.opID=opskrifter.id)"
end if
if Request.Form("checkbox5") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2kat2 on op2kat2.opID=opskrifter.id)"
end if
if Request.Form("checkbox6") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2kat3 on op2kat3.opID=opskrifter.id)"
end if

set rs = conn.Execute("select opskrifter.* from "& MySqlTabler &" "& sql &" order by navn")
response.write "<table width='500' border='0' cellspacing='10' align='center'>"
f = 0
do while not rs.eof
  if f mod 3 = 0 then
    response.write "</tr><tr><td width='225'>"
  else
    response.write "<td width='225'>"
  end if

  strNavn = rs("navn")
  strLink = "<a href='visopskrift.asp?id=" & rs("id") & "'>" & strNavn & "</a>"
  response.write "<li>" & strLink & "</li><br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Tilberedningstid: "& rs("tid") & "<br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Antal personer: "& rs("personer") & "<br>"

  response.write "</td>"
  f = f + 1
  rs.MoveNext
loop
response.write "</tr>"
response.write "</table>"
CloseDatabase
%>
Avatar billede ponyboye Nybegynder
06. september 2004 - 11:44 #45
uha så skal jeg til at lave alle udtræk om...opret opskrift, ret opskrift, udtræk af kategoriger eller er det at henvise til opID og hojID eller hvordan kommer jeg så til at bruge de kategoriger jeg har?
Avatar billede fennec Nybegynder
06. september 2004 - 12:23 #46
Du skal nu til at bruge det "rigtige" id for dine kategorier, så du kan slette emne, kategoriid, hojtid og vare fra dine kategori-tabeller.

Du skal også til at joine tabeller sammen, når du laver udtræk. Her er et eks på hvordan nogle af dine sql-sætninger bliver:

alle som er tilknyttet en/flere højtider (distinct bruges her for at få en forekomst af dem der har flere højtider):
"SELECT distinct opskrifter.* FROM (opskrifter inner join op2kat on opskrifter.id=op2kat.opid)"

alle som er tilknyttet en bestemt højtid (juleaften id=22):
"SELECT opskrifter.* FROM (opskrifter inner join op2kat on opskrifter.id=op2kat.opid) where op2kat.katID=22"
Avatar billede ponyboye Nybegynder
06. september 2004 - 16:06 #47
du skriver dette:

"SELECT opskrifter.* FROM (opskrifter inner join op2kat on opskrifter.id=op2kat.opid) where op2kat.katID=22"

men der skal jeg kende id´en på opskriften.

kan jeg så bruge denne hvis jeg vil hente alle opskrifter der høre under kategorien højtider?

"SELECT distinct opskrifter.* FROM (opskrifter inner join op2kat on opskrifter.id=op2kat.opid)"
Avatar billede fennec Nybegynder
06. september 2004 - 16:21 #48
Du skal ikke kende id'en på opskriften. Du skal kende id'en på kategorien (22 for juleaften), resten finden den ud af på JOIN, hvor vi jo har sagt "opskrifter.id=op2kat.opid". I dette tilfælde joiner vi med op2kat tabellen, og den indeholder kun info om hvilke højtider en opskrift tilhører. Det kunne måske være smart et omdøbe tabellerne, så de fik et mere sigende navn.

kategorier = hojtider
kategori1 = land
kategori2 = Ved ikke helt hvad det er...
kategori3 = madtype

tilsvarende ved op2kat som så burde hedde op2hoj.

Alle opskrifter som er knyttet til en højtid kan trækkes ud med:
"SELECT distinct opskrifter.* FROM (opskrifter inner join op2kat on opskrifter.id=op2kat.opid)"
Avatar billede ponyboye Nybegynder
06. september 2004 - 23:54 #49
okay tror jeg har den. For hver kategori laves der en tabel (op2kat) og der i lægges id´erne på kategorierne.

i de tabeller du har laver vil der blive nogen problmer hvis jeg sætter navne på felterne i op2kat?
Avatar billede fennec Nybegynder
07. september 2004 - 09:19 #50
Det burde det ikke, du skal bare huske også at ændret relationerne jeg har sat op, så de kører på det andet id i stedet. Du kan også helt fjerne dem, men så sikre Access ikke længre at data passer, det skal du selv gøre. Du skal f.eks huske at slette fra op2katX tabellerne, hvis du sletter en opskrift. Det ville Access gøre for dig eller gøre opmærksom på, afhængig af hvilken indstilling der er på relationerne.
Avatar billede ponyboye Nybegynder
07. september 2004 - 23:18 #51
kan man ikke lave det sådanne at jeg kan beholde kategorier som de er nu og søgningen som du har lavet den. Jeg tænkte lidt på at lave. Jeg kan nemlig ikke finde ud a det med relationerne så det vil være et problem for mig her og nu at kunne lave alt dette om.
Avatar billede ponyboye Nybegynder
09. september 2004 - 10:08 #52
jo jeg angler lige det med visning af frem og tilbage med side antal ved mange resultater i søgningen
Avatar billede fennec Nybegynder
09. september 2004 - 13:53 #53
Jeg har desværre været syg et par dage og er det stadig, men jeg skal nok kikke på det senere i dag....
Avatar billede ponyboye Nybegynder
10. september 2004 - 00:40 #54
takker du, slap du bare af til du er okay
Avatar billede fennec Nybegynder
10. september 2004 - 21:17 #55
Det er noget i denne stil du skal lave hvis du ikke vil gøre brug af paging funktionen. Paging kræver dog at du skal åbne databasen på en anden måde. Du skal desuden gemme din SQL-sætning i en session, da du ikke har formfelterne længere, og derfor ikke kan opbygge sql-sætningen.

Det er noget med at have et hiddenfelt på formen som du tjekker efter, også ser om du skal opbygge sql'en eller bruge den i session.

if request.form("buildSQL") = "yes" then
  'opbyg sql
  ...
  ...
  session("searchSQL") = "select opskrifter.* from opskrifter "& sql &" order by navn"
end if
set rs = conn.Execute(session("searchSQL"))

øverst på siden:
if request.querystring("sideID") <> "" then sideID = cint(request.querystring("sideID")) else sideID = 1


løkken til at løbe igennem resultater

counter = 1
do while not rs.eof
  if counter <= (sideID*20) and counter > ((sideID-1)*20)
    'udskriv resultaterne
  end if
  counter = counter + 1
  rs.MoveNext
loop

on error resume next
rs.MoveFirst
on error goto 0
if sideID > 1 then response.write "<a href=""denneside.asp?sideID="& (sideID-1) &"""> << </a>"
counter = 1
do while not rs.eof
  if (counter mod 20) = 1 then response.write "<a href=""denneside.asp?sideID="& cint(counter/20) &"""> "& cint(counter/20) &" </a>"
  counter = counter + 1
  rs.MoveNext
loop
if counter > 20 and (counter-20) < sideID*20 then response.write "<a href=""denneside.asp?sideID="& (sideID+1) &"""> >> </a>"
Avatar billede ponyboye Nybegynder
11. september 2004 - 10:55 #56
jeg forstår det ikke helt.

skal jeg indsætte:

if request.form("buildSQL") = "yes" then

i toppen af resultat siden?
Avatar billede ponyboye Nybegynder
11. september 2004 - 10:59 #57
skal jeg erstatte:

set rs = conn.Execute("select opskrifter.* from "& MySqlTabler &" "& sql &" order by navn")

med:

session("searchSQL") = "select opskrifter.* from opskrifter "& sql &" order by navn"
end if
set rs = conn.Execute(session("searchSQL"))

og der hvor der står

denneside.asp?sideID="& (sideID-1) &""">

er det linket på resultat siden?
Avatar billede fennec Nybegynder
13. september 2004 - 08:30 #58
1. ja
2. ja
3. ja

men husk at du skal have et hidden felt på din form side
<input type="hidden" name="buildSQL" value="yes">

på denne måde fortæller du resultatsiden at den skal opbygge sql-sætningen og gemme den i en session, når man kommer fra form siden.
Avatar billede ponyboye Nybegynder
15. september 2004 - 01:15 #59
Nu har jeg sammen sat det sådanne her, men den udskriver ikke noget og der kommer heller ikke nogle fejl?

<%
OpenDatabase
if request.querystring("sideID") <> "" then sideID = cint(request.querystring("sideID")) else sideID = 1
if request.form("buildSQL") = "yes" then

sql = ""
if Request.Form("textfield") <> "" then
    if sql = "" then
        sql = "where navn like '%"& Request.Form("textfield") &"%' "
    else
        sql = "and navn like '%"& Request.Form("textfield") &"%' "
    end if
end if
sql = ""
if Request.Form("textfield1") <> "" then
    if sql = "" then
        sql = "where in1 like '%"& Request.Form("textfield1") &"%' "
    else
        sql = "and in1 like '%"& Request.Form("textfield1") &"%' "
    end if
end if
if Request.Form("textfield2") <> "" then
    if sql = "" then
        sql = "where tid >= '"& Request.Form("textfield2") &"' "
    else
        sql = "and tid >= '"& Request.Form("textfield2") &"' "
    end if
end if
if Request.Form("textfield3") <> "" then
    if Request.Form("checkbox") <> "" then
        if sql = "" then
            sql = "where personer <= "& Request.Form("textfield3") &" "
        else
            sql = "and personer <= "& Request.Form("textfield3") &" "
        end if
    end if
    if Request.Form("checkbox2") <> "" then
        if sql = "" then
            sql = "where personer >= "& Request.Form("textfield3") &" "
        else
            sql = "and personer >= "& Request.Form("textfield3") &" "
        end if
    end if
end if
if Request.Form("checkbox3") <> "" then
    if Request.Form("hojtidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2hoj.katID IN ("& Request.Form("hojtidIDer")  &")"
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox4") <> "" then
    if Request.Form("emeIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2kemme.katID IN ("& Request.Form("emeIDer")  &")"
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox5") <> "" then
    if Request.Form("katIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2kategori.katID IN ("& Request.Form("katIDer")  &")"
        sql = sql & ")"
    end if
end if

if Request.Form("checkbox6") <> "" then
    if Request.Form("maltidIDer") <> "" then
        if sql = "" then
          sql = " where ("
        else
          sql = sql & " and ("
        end if
        sql = sql & "op2vare.katID IN ("& Request.Form("maltidIDer")  &")"
        sql = sql & ")"
    end if
end if

MySqlTabler = "opskrifter"
if Request.Form("checkbox3") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2hoj on op2hoj.opID=opskrifter.id)"
end if
if Request.Form("checkbox4") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2emme on op2emme.opID=opskrifter.id)"
end if
if Request.Form("checkbox5") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2kategori on op2kategori.opID=opskrifter.id)"
end if
if Request.Form("checkbox6") <> "" then
  MySqlTabler = "("& MySqlTabler &" inner join op2vare on op2vare.opID=opskrifter.id)"
end if

session("searchSQL") = "select opskrifter.* from opskrifter "& MySqlTabler &" "& sql &" order by navn"
set rs = conn.Execute(session("searchSQL"))
counter = 1
do while not rs.eof
  if counter <= (sideID*20) and counter > ((sideID-1)*20) Then
response.write "<table width='500' border='0' cellspacing='10' align='center'>"
f = 0
do while not rs.eof
  if f mod 3 = 0 then
    response.write "</tr><tr><td width='225'>"
  else
    response.write "<td width='225'>"
  end if

  strNavn = rs("navn")
  strLink = "<a href='visopskrift.asp?id=" & rs("id") & "'>" & strNavn & "</a>"
  response.write "<li>" & strLink & "</li><br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Tilberedningstid: "& rs("tid") & "<br>"
  response.write "&nbsp;&nbsp;&nbsp;&nbsp;Antal personer: "& rs("personer") & "<br>"

  response.write "</td>"
  f = f + 1
  rs.MoveNext
loop
response.write "</tr>"
response.write "</table>"
end if
  counter = counter + 1
  rs.MoveNext
loop

on error resume next
rs.MoveFirst
on error goto 0
if sideID > 1 then response.write "<a href=""denneside.asp?sideID="& (sideID-1) &"""> << </a>"
counter = 1
do while not rs.eof
  if (counter mod 20) = 1 then response.write "<a href=""denneside.asp?sideID="& cint(counter/20) &"""> "& cint(counter/20) &" </a>"
  counter = counter + 1
  rs.MoveNext
loop
if counter > 20 and (counter-20) < sideID*20 then response.write "<a href=""denneside.asp?sideID="& (sideID+1) &"""> >> </a>"
  End if

CloseDatabase
%>
Avatar billede fennec Nybegynder
15. september 2004 - 08:12 #60
du skal have flyttet din end if op mellem disse linjer:

  session("searchSQL") = "select opskrifter.* from opskrifter "& MySqlTabler &" "& sql &" order by navn"
end if '<!-- Her. For så bruger den session("searchSQL") når du hopper frem/tilbage
set rs = conn.Execute(session("searchSQL"))
Avatar billede ponyboye Nybegynder
15. september 2004 - 11:49 #61
så kommer den med denne fejl:

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/sogresultat.asp, line 173


173 er:

end if
  counter = counter + 1
  rs.MoveNext
loop


173: (rs.MoveNext)
Avatar billede ponyboye Nybegynder
15. september 2004 - 12:04 #62
nu viser den søgningen, men prøv at hoppe her ine og bare tryk på søg uden at vælge noget så viser den alt fra databasen og så tryk på siderne. så virker det ikke.

Du skal også prøve at søge i kategorierne. og under kager der ved jeg der er opskrifter og se hvad der sker.

www.danskehojtider.dk/sog.asp
Avatar billede fennec Nybegynder
15. september 2004 - 12:04 #63
Det er fordi du har et loop i loop. Mit gæt er at det skal være sådan:

counter = 1
f = 0
response.write "<table width='500' border='0' cellspacing='10' align='center'>"
do while not rs.eof
  if counter <= (sideID*20) and counter > ((sideID-1)*20) Then
    if f mod 3 = 0 then
      response.write "</tr><tr><td width='225'>"
    else
      response.write "<td width='225'>"
    end if

    strNavn = rs("navn")
    strLink = "<a href='visopskrift.asp?id=" & rs("id") & "'>" & strNavn & "</a>"
    response.write "<li>" & strLink & "</li><br>"
    response.write "&nbsp;&nbsp;&nbsp;&nbsp;Tilberedningstid: "& rs("tid") & "<br>"
    response.write "&nbsp;&nbsp;&nbsp;&nbsp;Antal personer: "& rs("personer") & "<br>"
    response.write "</td>"
  end if
  f = f + 1
  counter = counter + 1
  rs.MoveNext
loop
response.write "</tr>"
response.write "</table>"
Avatar billede ponyboye Nybegynder
16. september 2004 - 00:29 #64
det der side 0 kan man ikke fjerne det så den skarter fra side 1 med resultaterne?
Den virker som den skal når 0 er vær og starter fra 1 med resultaterne.
Avatar billede ponyboye Nybegynder
16. september 2004 - 00:41 #65
når man vælger i nogle af drop down kategorierne laver den fejl:

Syntax error in FROM clause.

/sogresultat.asp, line 146


session("searchSQL") = "select opskrifter.* from opskrifter "& MySqlTabler &" "& sql &" order by navn"
end if '<!-- Her. For så bruger den session("searchSQL") når du hopper frem/tilbage
set rs = conn.Execute(session("searchSQL"))

146 = set rs = conn.Execute(session("searchSQL"))
Avatar billede fennec Nybegynder
16. september 2004 - 08:26 #66
udskriv lige session("searchSQL") inden du bruger den, og smid den herind.
Avatar billede ponyboye Nybegynder
16. september 2004 - 12:34 #67
select opskrifter.* from opskrifter opskrifter order by navn
Avatar billede ponyboye Nybegynder
16. september 2004 - 12:37 #68
ups det var den forkerte søgning. Den første er hvor der vises alle resultater og der kun trykkes på søg.

Dette er hvis der vælges i kategorierne:

select opskrifter.* from opskrifter (opskrifter inner join op2kategori on op2kategori.opID=opskrifter.id) where (op2kategori.katID IN (58)) order by navn
Avatar billede fennec Nybegynder
16. september 2004 - 12:52 #69
min fejl.... "opskrifter" skal selvfølgelig ikke med 2 gange :o)

session("searchSQL") = "select opskrifter.* from opskrifter "& MySqlTabler &" "& sql &" order by navn"

skal derfor være:
session("searchSQL") = "select opskrifter.* from "& MySqlTabler &" "& sql &" order by navn"
Avatar billede ponyboye Nybegynder
16. september 2004 - 13:15 #70
Hvordan fjerner jeg det der 0  i siderne for når der trykkes på 0 er det bare en tom side?
Avatar billede ponyboye Nybegynder
16. september 2004 - 13:16 #71
jo og det andet virker som det skal.
Avatar billede fennec Nybegynder
16. september 2004 - 15:12 #72
Jeg har fået lavet det lidt forkert. Den beregner ikke det rigtige sidenummer:

if (counter mod 20) = 1 then response.write "<a href=""denneside.asp?sideID="& cint(counter/20) &"""> "& cint(counter/20) &" </a>"

skal derfor være:
if (counter mod 20) = 1 then response.write "<a href=""denneside.asp?sideID="& (int((counter-1)/20)+1) &"""> "& (int((counter-1)/20)+1) &" </a>"
Avatar billede ponyboye Nybegynder
16. september 2004 - 16:21 #73
he he det virker fint, men nu er det >> den er gal med. Hvis der er side << 1 2 3 >> og man er på side 3 og trykker på frem så kommer der en tom side 4
Avatar billede ponyboye Nybegynder
16. september 2004 - 16:22 #74
kan den ikke fjerne den når der ikke er flere sider?
Avatar billede fennec Nybegynder
16. september 2004 - 16:39 #75
if counter > 20 and (counter-20) < sideID*20 then response.write "<a href=""denneside.asp?sideID="& (sideID+1) &"""> >> </a>"

Skal rettes lidt til. Prøv denne:
if counter > 20 and (counter) > sideID*20 then response.write "<a href=""denneside.asp?sideID="& (sideID+1) &"""> >> </a>"
Avatar billede ponyboye Nybegynder
16. september 2004 - 18:39 #76
nu ved jeg ikke hvor stort et TAK jeg skal give dig for uden din hjælp vil jeg ikke kunne få sådanne en søgning på så kort tid, måske der vil have gået et par år.

Jeg takke fordi ud har haft tånmodighed til at blive og hjælpe hele vejen i gemmen og for det findes der ikke nogen tak.

Vil du være venlig at lægge et svar.
Avatar billede fennec Nybegynder
16. september 2004 - 22:09 #77
Det er skam ikke noget problem :o)

Det er disse ? som er sjove at klare, og jeg lærer skam også noget selv. Man bliver nemlig meget bedre til fejlsøgning. Også kan man finde alle disse scrips frem når/hvis man selv skal bruge dem.

.o) <-- One Eyed Jack
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