webForumDet fria alternativet
Logga in / Bli medlem

vissa 'true' & vissa 'false'

ASP

5 svar · 220 visningar · startad av roady

Medlem sedan jan. 2002473 inlägg
Trådstart#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

Medlem 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.

Medlem 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

Medlem sedan jan. 2002473 inlägg
#4

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

Medlem 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.

Medlem 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 )

268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)