Jeg har en database med to tabeller i. Syns ikke lige jeg kan gennemskue hvordan jeg lettest løser følgende problem:
Min script starter med at hente alle produkterne i en tabel "lager". Deri har alle varene et 'nr'. Det 'nr' = det 'nr' som står i den anden tabel "variant". Mit script skal hente alle varene ud af "lager"-tabellen, tjekke om den står 'Ja' i 'billed'-kollonen i "variant", hvis der gør det, skal den skrive/hente produkterne.
Du skal vel bare lave et SQL udtræk hvor du bruger et join til at checke hvad der står i den anden tabel. Alt efter hvilken database du bruger kan du ordne det grafisk og "let", ellers så kan du få forståelsen her: http://www.w3schools.com/sql/sql_join.asp :)
Min nuværende kode ser sådan her ud. Skal jeg så smide variant-delen af din kode ind lige efter jeg har oprettet forbindelse til databasen?
--- <% '****PAGE: deklarer intpage til paging intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If '----------------------------------------------------------------- '--------DATABASE ACCESS------------------------------------------ '-----------------------------------------------------------------
'Åbner forbindelse Set db = Server.CreateObject("ADODB.RecordSet") SQL = ("SELECT * FROM lager WHERE lager>'0' AND Billede = 'Ja' ORDER BY beskrivelse") JET = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("../../../log/db.mdb") db.Open SQL, JET, 1
%></strong></font> <table width="668" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="334"><% 'Varer Pr. side if Request.Querystring("perpage") = "" then perpage = 10 else perpage = Request.Querystring("perpage") end if Response.Write "<p>Vis " '--5-- if perpage = 5 then Response.Write "<b>5</b> - " else Response.Write "<a href=site_produkter.asp?perpage=5><u>5</u></a> - " end if '--10-- if perpage = 10 then Response.Write "<b>10</b> - " else Response.Write "<a href=site_produkter.asp?perpage=10><u>10</u></a> - " end if '--20-- if perpage = 20 then Response.Write "<b>20</b> - " else Response.Write "<a href=site_produkter.asp?perpage=20><u>20</u></a> - " end if '--50-- if perpage = 50 then Response.Write "<b>50</b> - " else Response.Write "<a href=site_produkter.asp?perpage=50><u>50</u></a> " end if Response.Write "varer pr. side</p>" '----------------- %></td> <td width="334"> <div align="right"> <% '****PAGE: Hvis ikke db er BOF eller EOF, så gælder dette: If Not (db.BOF Or db.EOF) Then db.PageSize = perpage db.AbsolutePage = intPage intRecCount = db.PageSize intPageCount = db.PageCount
'****PAGE: skriver intPage og intPageCount til siden, vil se sådan her ud: "side x af x". Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>" %></div> </td> </tr> </table> <br/> <% Response.Write "<table width=100% border=0 cellspacing=0 cellpadding=0><tr height=1><td bgcolor=#e7e7e7 height=1></td></tr>"
'hvis db tom, så
if db.eof then
'ellers skriv det her til siden else
'gør dette mens databasen ikke er tom og pagesize(intRecCount) er større end 0
Så tager den tingene fra lageret og samligner et nummer af gangen fra lageret med alle numrene fra variant.
Og hvis den så finder 2 numre der passer sammen, så tager det billed feltet for det nummers række, og hvis der står "ja" i billed feltet så udskriver den det produkt :D
<% '****PAGE: deklarer intpage til paging intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If '----------------------------------------------------------------- '--------DATABASE ACCESS------------------------------------------ '-----------------------------------------------------------------
'Åbner forbindelse Set db = Server.CreateObject("ADODB.RecordSet") SQL = ("SELECT * FROM lager WHERE lager>'0' AND Billede = 'Ja' ORDER BY beskrivelse") JET = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("../../../log/db.mdb") db.Open SQL, JET, 1
Do strVariant = "Select * from variant where nr ='" & rs("nr") & "' " Set vs = Conn.Execute(strVariant)
%></strong></font> <table width="668" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="334"><% 'Varer Pr. side if Request.Querystring("perpage") = "" then perpage = 10 else perpage = Request.Querystring("perpage") end if Response.Write "<p>Vis " '--5-- if perpage = 5 then Response.Write "<b>5</b> - " else Response.Write "<a href=site_produkter.asp?perpage=5><u>5</u></a> - " end if '--10-- if perpage = 10 then Response.Write "<b>10</b> - " else Response.Write "<a href=site_produkter.asp?perpage=10><u>10</u></a> - " end if '--20-- if perpage = 20 then Response.Write "<b>20</b> - " else Response.Write "<a href=site_produkter.asp?perpage=20><u>20</u></a> - " end if '--50-- if perpage = 50 then Response.Write "<b>50</b> - " else Response.Write "<a href=site_produkter.asp?perpage=50><u>50</u></a> " end if Response.Write "varer pr. side</p>" '----------------- %></td> <td width="334"> <div align="right"> <% '****PAGE: Hvis ikke db er BOF eller EOF, så gælder dette: If Not (db.BOF Or db.EOF) Then db.PageSize = perpage db.AbsolutePage = intPage intRecCount = db.PageSize intPageCount = db.PageCount
'****PAGE: skriver intPage og intPageCount til siden, vil se sådan her ud: "side x af x". Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>" %></div> </td> </tr> </table> <br/> <% Response.Write "<table width=100% border=0 cellspacing=0 cellpadding=0><tr height=1><td bgcolor=#e7e7e7 height=1></td></tr>"
'hvis db tom, så
if db.eof then
'ellers skriv det her til siden else
'gør dette mens databasen ikke er tom og pagesize(intRecCount) er større end 0
Do While Not db.EOF And intRecCount > 0
id = db("id") + 2152 beskrivelse = db("beskrivelse") beskrivelse2 = db("beskrivelse2") vekst = db("vekst") lov = db("lov") blomst = db("blomst") frugt = db("frugt") alder = db("alder") str = db("str") pris = db("pris") nr = db("nr") placering = db("placering") end if
%></strong></font> <table width="668" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="334"><% 'Varer Pr. side if Request.Querystring("perpage") = "" then perpage = 10 else perpage = Request.Querystring("perpage") end if Response.Write "<p>Vis " '--5-- if perpage = 5 then Response.Write "<b>5</b> - " else Response.Write "<a href=site_produkter.asp?perpage=5><u>5</u></a> - " end if '--10-- if perpage = 10 then Response.Write "<b>10</b> - " else Response.Write "<a href=site_produkter.asp?perpage=10><u>10</u></a> - " end if '--20-- if perpage = 20 then Response.Write "<b>20</b> - " else Response.Write "<a href=site_produkter.asp?perpage=20><u>20</u></a> - " end if '--50-- if perpage = 50 then Response.Write "<b>50</b> - " else Response.Write "<a href=site_produkter.asp?perpage=50><u>50</u></a> " end if Response.Write "varer pr. side</p>" '----------------- %></td> <td width="334"> <div align="right"> <% '****PAGE: Hvis ikke db er BOF eller EOF, så gælder dette: If Not (db.BOF Or db.EOF) Then db.PageSize = perpage db.AbsolutePage = intPage intRecCount = db.PageSize intPageCount = db.PageCount
'****PAGE: skriver intPage og intPageCount til siden, vil se sådan her ud: "side x af x". Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>" %></div> </td> </tr> </table> <br/> <% Response.Write "<table width=100% border=0 cellspacing=0 cellpadding=0><tr height=1><td bgcolor=#e7e7e7 height=1></td></tr>"
'hvis db tom, så
if db.eof then
'ellers skriv det her til siden else
'gør dette mens databasen ikke er tom og pagesize(intRecCount) er større end 0
Item cannot be found in the collection corresponding to the requested name or ordinal
= Navnene er forkerte, du manger "" i koden altså kode = vs("kode")
Synes godt om
Ny brugerNybegynder
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.