H Hallgren Medlem sedan dec. 1999 1 606 inlägg Frågan 16 mars 2002 13:48 #1 Yo!
Sitter här och dricker kallt kaffe, lyssnar på Weird Al och stirrar på ett problem som jag inte trodde jag skulle träffa på när jag började att göra detta lilla skript men, men :l
Ska uppdatera fält som är framloopade från dbn men jag kan inte komma på hur jag ska göra min lilla update rad. :( Varför? jo, alla fällt loppas ut med namn och med ett input fält (var) där man ska skriva in det nya nr. MEN alla fält ligger inom samma formulär och har bara en submit knapp. Det blir att man uppdatera ett fält på flera ställen samtidigt. Hänger någon med? :)
Vet inte riktigt vad jag behöver säga mer så om ni behöver mer info för att hjälpa mig på något sätt så säg till.
Fridens!
H Hallgren Medlem sedan dec. 1999 1 606 inlägg ...
Kod är egentligen det jag inte har..typ :)
Det lilla jag har ju nu är..
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={MYSQL};server=localhost;db=webshop;uid=;pwd=;"
Set prod_antal = Connect.Execute("SELECT * FROM varor WHERE lager < 5")
%>
<form method="post" action="main.asp?product_update=yes">
<table border="0" width="400">
<tr>
<td colspan="4" height="20">
<b style="color:#ee0000">Följade varor börjar att ta slut i lagret!</b>
</td>
</tr>
<tr>
<td width="100">
<b>Produkt</b>
</td>
<td width="100" align="center">
<b>Artikelnumer</b>
</td>
<td width="100" align="center">
<b>I lager</b>
</td>
<td width="100" align="center">
<b>Nytt antal</b>
</td>
</tr>
<%
Do until prod_antal.eof
%>
<tr>
<td width="100">
<%=prod_antal("vara")%>
</td>
<td width="100" align="center">
<%=prod_antal("artnr")%>
</td>
<td width="100" align="center">
<%=prod_antal("lager")%>
</td>
<td width="100" align="center">
<input type="text" size="3" name="<%=prod_antal("artnr")%>">
</td>
</tr>
<%
prod_antal.MoveNext
Loop
Connect.Close
Set Connect = Nothing
%>
H Hallgren Medlem sedan dec. 1999 1 606 inlägg ...
..det kanske inte går att lösa. Någon som har ett bättre förslag?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Jo, det går nog att ordna
Om du lägger till ett hidden fält som innehåller alla artikelnummer
<input type="hidden" name="artnr" value="<%=prod_antal("artnr")%>">
och sedan på uppdaterings sidan
for each artnr in request.form("arntr")
query = "update varor set lager = " & request.form(artnr) & " where artnr = " & artnr
connect.execute query,,128
next
Det går att få ihop det till en en update-fråga
query = "update varor set lager = case artnr "
for each artnr in request.form("artnr")
query = query & "when " & artnr & " then & request.form(artnr) & " "
next
query = query & " end where atrnr in (" & request.form("artnr") & ")"
Det här förutsätter att artnr är numeriskt annars så får man dona lite till.
H Hallgren Medlem sedan dec. 1999 1 606 inlägg ...uh?
nu är jag lite osäker på vilken snutt jag ska använda.. :l
[r]
Mmmm, nu har jag missförstått något. :l Jag måste ju hämta det nya värdet någonstans, men vart gör jag det i din kod?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Jag tänkte att fältet som du döper till samma namn som artiklenummer skulle innehålla det nya värdet för lager.
H Hallgren Medlem sedan dec. 1999 1 606 inlägg ..typ?
Detta funkar iallafall inte. Mmm, har nog missförståt något..igen. :l
<%
If request.querystring("product_update") = "yes" then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={MYSQL};server=localhost;db=webshop;uid=;pwd=;"
for each artnr in request.form("arntr")
query = "update varor set lager = " & request.form("artnr") & " where artnr = " & artnr
connect.execute query,,128
next
Connect.Close
Set Connect = Nothing
else
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={MYSQL};server=localhost;db=webshop;uid=;pwd=;"
Set prod_antal = Connect.Execute("SELECT * FROM varor WHERE lager < 5")
%>
<form method="post" action="main.asp?product_update=yes">
<table border="0" width="350">
<tr>
<td colspan="3" height="20">
<b>Följade varor har nått den uppsatta minimumgränsen</b>
</td>
</tr>
<tr>
<td width="150">
<b>Produkt</b>
</td>
<td width="100" align="center">
<b>I lager</b>
</td>
<td width="100" align="center">
<b>Nytt antal</b>
</td>
</tr>
<%
Do until prod_antal.eof
%>
<tr>
<td width="150">
<%=prod_antal("vara")%>
</td>
<td width="100" align="center">
<%=prod_antal("lager")%>
</td>
<td width="100" align="center">
<input type="text" size="3" name="<%=prod_antal("artnr")%>">
<input type="hidden" name="artnr" value="<%=prod_antal("artnr")%>">
</td>
</tr>
<%
prod_antal.MoveNext
Loop
Connect.Close
Set Connect = Nothing
%>
<tr>
<td colspan="4">
<input type="submit" value="uppdatera">
</td>
</tr>
</table>
</form>
<%
end if
%>
H Hallgren Medlem sedan dec. 1999 1 606 inlägg ...
Nu blir jag bara ledsen. Jag får det inte att funka! :(