webForumDet fria alternativet

vissa 'true' & vissa 'false'

ASPur ASP

5 svar · 220 visningar · startad av roady

roadyMedlem sedan jan. 2002473 inlägg
#1

Kan jag uppdatera fält i en DB i en enda SQL sats?
Alltså jag har ett formulärfält där jag listar en massa weblänkar och till den så har jag en massa checkboxes där man väljer i vilken kategori länken skall ligga i eller om man vill ta bort den (i access databasen blir valen 'true' eller 'false')

Först Formuläret:
Typ;

<form name="form" method="post" action="change.asp">
<table>
<% Do Until objRS.EOF 
	<tr>
		<td><%=objRS("lankRubrik")%></td>
		<td align="center"><input type="checkbox" name="elev" value="<%=objRS("lankID")%>" 
			<% IF objRS("lankElev") = true THEN
				response.write "CHECKED" 
			   END IF%>></td>
		<td align="center"><input type="checkbox" name="larare" value="<%=objRS("lankID")%>" 
			<% IF objRS("lankLarare") = true THEN
				response.write "CHECKED" 
			   END IF%>></td>
		<td align="center"><input type="checkbox" name="kommun" value="<%=objRS("lankID")%>" 
			<% IF objRS("lankKommun") = true THEN
				response.write "CHECKED" 
			   END IF%>></td>
		<td align="center"><input type="checkbox" name="sokverktyg" value="<%=objRS("lankID")%>" 
			<% IF objRS("lankSokverktyg") = true THEN
				response.write "CHECKED" 
			   END IF%>></td>
		<td align="center"><input type="checkbox" name="media" value="<%=objRS("lankID")%>" 
			<% IF objRS("lankMedia") = true THEN
				response.write "CHECKED" 
			   END IF%>></td>
		<td align="center"><input type="checkbox" name="delete" value="<%=objRS("lankID")%>"></td>
	</tr>
<% objRS.MoveNext
   Loop %>
</table>

Skulle jag exempel lista de som skall ha lankElev till true så kan jag lista dem med:
request.form("elev") så visas alla ID-nummer....
Alltså kan jag uppdatera alla länkar som skall ligga i elev katalogen med:

strElev = request.form("elev")
SQL = "UPDATE lank SET lankElev = 'true' WHERE lankID = "& strElev &";"

Men hur gör jag för att sätta resten till 'false' ???
PS: jag kan inte den pedagogisk biten så ursäkta om frågan är lite luddig :OO

roadyMedlem sedan jan. 2002473 inlägg
#2

Kanske lite väl otydlig....

Den enda lösningen jag kan komma på är att först sätta värdet 'false' på alla ID och sedan köra det en gång till och sätta 'true' på de ID som skall ha det,
Tänkte bara ifall man kunde komma runt att anropa DB:n 2 ggr.

PatrikBMedlem sedan mars 20002 836 inlägg
#3
strElev = request.form("elev")
SQL = "UPDATE lank SET lankElev = 'true' WHERE lankID IN ("& strElev &")"

objconn.Execute(SQL)

SQL = "UPDATE lank SET lankElev = 'false' WHERE lankID NOT IN("& strElev &")"

objconn.Execute(SQL)

cya,
PatrikB

roadyMedlem sedan jan. 2002473 inlägg
#4

Oki, då får man göra så ändå....
Tackar Patrik

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det är inte nödvändigt

SQL = "UPDATE lank SET lankElev = iif(lankid in ("& strElev &"),true,false)"

om du kör access.

roadyMedlem sedan jan. 2002473 inlägg
#6

Häftigt..... skall testa koden på fredag.... tackar tackar :)
Jag älskar det här forumet och er.... (ta det inte fel :e )

134 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)