Her skal jeg have det personen skriver i de 4 felter til at opdatere 4 felter i min db, som hedder det samme som felterne. I min db har jeg så en forespørgsel, som laver nogle beregninger på de tal man skriver. Her skal der så være en side som viser resultaterne. Denner er på denne adresse (feks): http://www.bowling-aalborg.dk/bbkl/travian/udregning.asp?folkeslag=romere
Denne side skal så åbnes med det kriterie som man vælger i afkrydsningsfelterne nedenunder, altså om det er romere, gallere eller germanere.
Jeg kan ikke lige få det til at fungere. Vil nogle lave et overslag om hvordan mine 2 filer skal se ud. Min formular side ser nu således ud:
Jeg har ikke rigtig forsøgt så meget. Er rimelig ny indenfor ASP, så tror ikke det jeg har prøvet er rigtigt. Altså jeg kan godt få siden til at returnere værdier fra db, som du ser, det er blot med at få flyttet kriterierne med fra formularen til siden hvor data skal vises
Ok. Du kan på siden udregning.asp skrive: ----------------------------------------- <%Set rs=Server.CreateObject("ADODB.RecordSet") Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/database.mdb")
Set rs=Conn.Execute("INSERT INTO tblIndtastning (materiale,folkeslag) VALUES ('"&Request.Form("materiale")&"','"&Request.Form("folkeslag")&"')")
Response.Redirect "vis.asp"%> ----------------------------------------- Her opretter jeg først forbindelse til databasen "database.mdb" som ligger i mappen "db" i hovedmappen.
Dernæst indsætter vi i tabellen "tblIndtastning" henholdsvis "materiale" (som jeg har omdøbt det til - i din kode har du kaldt alle for "træ") og "folkeslag". Det kræver så, at felterne i databasen også hedder "materiale" og "folkeslag"
Jeg har allerede databaseforbindelsen, som include i toppen af filen. Felterne skal hedde træ, Ler, Jern og Korn.
Husk at den skal opdatere ned i tabellen, hvor felterne også hedder Træ, Ler, Jern og Korn. Derefter skal den åbne siden udregning.asp, hvor den skal returnere data hvor folkeslag = enten Romere, Gallere eller Germanere - Alt efter hvilken man vælger på indtastning.asp
Altså, for lige at opsummere - Man skriver f.eks 1000 i Træ - 1000 i Ler - 1000 i Jern - 1000 i Korn. Når man trykke udregn skal disse værdier opdateres ned til tabellen tblIndtastning i felterne Træ, Ler, Jern og Korn. Herefter skal den nye side åbnes med select * from tblIndtastning med et kriterie, hvor folkeslag = det valg man laver på formularen (Romere, Gallere, Germanere)
Det var jo derfor jeg spurgte, om du ikke kunne vise mig noget af din kode. =) Jeg sku' gerne programmere noget, der kan arbejde sammen med din forbindelse.
Mit eksempel skal, med dine nye oplysninger, være: ------------------------------------------ <%Set rs=Server.CreateObject("ADODB.RecordSet") Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/database.mdb")
Conn.Execute("INSERT INTO tblIndtastning (træ,ler,jern,korn,folkeslag) VALUES ('"&Request.Form("træ")&"','"&Request.Form("ler")&"','"&Request.Form("jern")&"','"&Request.Form("korn")&"','"&Request.Form("folkeslag")&"')")
Response.Write "<h2>"&Request.Form("folkeslag")&"</h2>"&vbCrLf Set rs=Conn.Execute("SELECT * FROM tblIndtastning WHERE folkeslag='"&Request.Form("folkeslag")&"'") Do While Not rs.EOF Response.Write "Træ: "&rs("træ")&", ler: "&rs("ler")&", jern: "&rs("jern")&", korn: "&rs("korn")&"<br>"&vbCrLf rs.MoveNext Loop rs.Close%> ------------------------------------------ Men jeg ved jo ikke præcis, hvilke data du vil have vist.
Men skal det opdateres i en tabel, hvor posten allerede findes? For så skal vi jo arbejde med et brugernavn/brugerid så vi kan finde den rigtige række, og det fremgår jo ikke af dit oprindelige indlæg.
Der findes kun 1 række i tabellen, så det er blot denne der skal opdateres hver gang. Gammel data overskrives bare. Og forresten, på intet tidspunkt skal feltet Folkeslag opdateres. Det eneste dette skal bruges til er i kriteriet, da dette ligger i andre tabeller.
Kan du lave et eksempel til mig med dette, samt uden db connection, da jeg har denne i en anden fil?
Jeg kan ikke udelade dbconnection, da din kan være anderledes og så vil det ikke fungere. Hvis du skriver din dbconnection her, kan jeg lave det, så det virker sammen. Men det skal kodes, så de matcher hinanden.
Med dbconnection: ----------------------------------- <%Set rs=Server.CreateObject("ADODB.RecordSet") Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/database.mdb")
Conn.Execute("UPDATE tblIndtastning SET træ='"&Request.Form("træ")&"',ler='"&Request.Form("ler")&"',jern='"&Request.Form("jern")&"',korn='"&Request.Form("korn")&"',folkeslag='"&Request.Form("folkeslag")&"')")
Response.Write "<h2>"&Request.Form("folkeslag")&"</h2>"&vbCrLf Set rs=Conn.Execute("SELECT * FROM tblIndtastning WHERE folkeslag='"&Request.Form("folkeslag")&"'") Response.Write "Træ: "&rs("træ")&", ler: "&rs("ler")&", jern: "&rs("jern")&", korn: "&rs("korn")&"<br>"&vbCrLf rs.Close%>
<% dim conn function OpenConn( DBPath ) Set Conn = Server.CreateObject("ADODB.Connection") On error resume next '<-- Start fejlhåndtering Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath if err.number <> 0 then response.redirect ("fejl.asp") response.end end if on error goto 0 '<-- Reset til default fejlhåndtering end function OpenConn("DB STI") %>
I toppen af udregning.asp skriver jeg blot <!--#include file="database_con.asp"-->
Så må det blive: ------------------------------------------ <!--#include file="database_con.asp"--> <%Conn.Execute("UPDATE tblIndtastning SET træ='"&Request.Form("træ")&"',ler='"&Request.Form("ler")&"',jern='"&Request.Form("jern")&"',korn='"&Request.Form("korn")&"',folkeslag='"&Request.Form("folkeslag")&"')")
Response.Write "<h2>"&Request.Form("folkeslag")&"</h2>"&vbCrLf Set rs=Conn.Execute("SELECT * FROM tblIndtastning WHERE folkeslag='"&Request.Form("folkeslag")&"'") Response.Write "Træ: "&rs("træ")&", ler: "&rs("ler")&", jern: "&rs("jern")&", korn: "&rs("korn")&"<br>"&vbCrLf rs.Close%>
Får en lidt mærkelig fejl nu. Får bare afvide at "Siden kan ikke vises", når jeg har indatstet i formularen. Skriver jeg adressen til udregning direkte får jeg "No value given for one or more required parameters". Får altså stadig ikke returnert noget data... Hvad kan dette skyldes?
Forresten har jeg fjernet delen om folkeslag, da denne ikke skal skrives ned i db, så den eltså nu ser således ud:
<!--#include file="database_con.asp"--> <%Conn.Execute("UPDATE tblIndtastning SET træ='"&Request.Form("træ")&"',ler='"&Request.Form("ler")&"',jern='"&Request.Form("jern")&"',korn='"&Request.Form("korn")&"'")
Response.Write "<h2>"&Request.Form("folkeslag")&"</h2>"&vbCrLf Set rs=Conn.Execute("SELECT * FROM tblIndtastning WHERE folkeslag='"&Request.Form("folkeslag")&"'") Response.Write "Træ: "&rs("træ")&", ler: "&rs("ler")&", jern: "&rs("jern")&", korn: "&rs("korn")&"<br>"&vbCrLf rs.Close%>
Skriver jeg bare adressen direkte nu får jeg fejl i linie 5, som er: Set rs=Conn.Execute("SELECT * FROM tblIndtastning WHERE folkeslag='"&Request.Form("folkeslag")&"'")
Det ser ud som om jeg har fået det til at virke. Forstår dog ikke hvorfor den nu i "antal" skriver det man indtaster i tallene. Det er nemlig ikke hvad der står i min forespørgsel i dben. Ved du hvorfor den gør det?
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.