charkprodukter.asp består av ram1 (chark.asp), en sida som listar produkterna från databasen och ram2 (produktsvar.asp) där information om produkten spaltas upp.
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM Produkt ORDER BY Namn"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
Namn och bild som hämtas från produkt-tabellen visas rätt när man klickar på produkt-länken i ram1 (chark.asp) men köttmängden som hämtas från tabellen Kottmangd blir densamma för alla produkter även om de har olika värden i db:n. Någon som kan svara på varför det blir så?
Om jag tolkar det rätt borde koden isf se ut så här:
[ Set RecSet = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT Namn FROM Produkt WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Bild FROM Produkt WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Info FROM Svensk_ravara WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Kottmangd FROM Kottmangd WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Fetthalt FROM Fetthalt WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Forvaring FROM Kylvara WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Anvandningsomrade FROM Anvandningsomrade WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Telefon FROM Konsumentkontakt WHERE ProduktID = " & Request.Querystring("id")
strSQL = "SELECT Ovrigt FROM Ovrigt WHERE ProduktID = " & Request.Querystring("id")
Set RecSet = Connect.Execute (strSQL)%\>\]
Får då följande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/magnus/produktsvar.asp, line 39
Nej, du behöver bara göra förändring i WHERE-satsen.
strSQL = "SELECT Namn, Bild, Kottmangd FROM Produkt, Kottmangd WHERE Produkt.ProduktID = Kottmangd.ProduktID AND Produkt.ProduktID = " & Request.Querystring("id")
Men, jag vill ändå rekommendera dig att lägga all denna produktdata i en och samma tabell. Eller finns det kanske någon anledning som jag inte ser att alla attribut ligger i en egen tabell?
Jag använder olika tabeller för att undvika redundans, men jag är kanske fel ute!? Provade att lägga in sql-satsen men får följande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/magnus/produktsvar2.asp, line 33
Rad 33: <% Set RecSet = Connect.Execute (strSQL) %>
Jag kan inte förstå hur det kan bli redundant om du lägger all relaterad produktdata i en och samma tabell.
Felmeddelandet betyder att det är något felaktigt tabell- eller fältnamn. Heter nyckeln ProduktID i båda tabellerna? Prova annars ange tabellnamn före fältnamn, dvs Produkt.Namn, Produkt.Bild, Kottmangd.Kottmangd.