15. november 2003 - 15:37Der er
4 kommentarer og 1 løsning
Ja/Nej i database, kun en post med ja af gangen i databasen.
Hej jeg har et system hvor jeg kan vise en post som default. Men der må kun være en post som er default ad gangen. Der må ikke være 2 poster som er defaulte. problemet er når man opdatere en post så virker funktionen ikke:
If Request.Form("default") = "on" Then om_default = "1" else om_default = "0" end if sql="select * from sider where om_default = 1" Set pageItems = cn.execute(sql) If pageItems.eof Then sql="UPDATE sider SET titel='" & Clean(Request.Form("titel")) & "', tekst='" & Clean(Request.Form("tekst")) & "', dato = '" & date & "', om_default = '" & om_default & "' WHERE id=" & Request.Querystring("id") Set pageItems = cn.execute(sql) Response.Redirect scriptname & "default.asp?action=page&mode=view&edit-del=edit" else page = page & "Der er allerede en side som bliver vist på startsiden.<br>"_ & "Du skal fjerne fluebenet ved denne side før den side du er igang med at oprette kan blive vist på startsiden"_ & "<br><br>NOTE: Du kan altid senere sætte en side til at blive vist på startsiden.<br>"_ & "Klik på tilbage og fjernfluebenet ved denneside for at forsætte" end if
Jeg kan ikke helt gennemskue din funktion, men kan du ikke bare eksekvere denne sql først, inden du indsætter i databasen.
sql = "update sider set om_default = 0"
på den måde sætter du alle værdierne til 0, derefter kan du opdatere den ene som du arbejder med, altså hvis du starter med at tjekke for om den nye skal være default, eksekvere du sql'en...
If Request.Form("default") = "on" Then om_default = "1" else om_default = "0" end if sql="select * from sider where om_default = 1" Set pageItems = cn.execute(sql) If not pageItems.eof Then sql = "update sider set om_default=0" Set pageItems = cn.execute(sql) end if sql="UPDATE sider SET titel='" & Clean(Request.Form("titel")) & "', tekst='" & Clean(Request.Form("tekst")) & "', dato = '" & date & "', om_default = '" & om_default & "' WHERE id=" & Request.Querystring("id") Set pageItems = cn.execute(sql) Response.Redirect scriptname & "default.asp?action=page&mode=view&edit-del=edit"
If Request.Form("default") = "on" Then om_default = 1 else om_default = 0 end if sql="select * from sider where om_default = 1" Set pageItems = cn.execute(sql) If pageItems.eof Then sql="UPDATE sider SET titel='" & Clean(Request.Form("titel")) & "', tekst='" & Clean(Request.Form("tekst")) & "', dato = '" & date & "', om_default = '" & CInt(om_default) & "' WHERE id=" & Request.Querystring("id") Set pageItems = cn.execute(sql) Response.Redirect scriptname & "default.asp?action=page&mode=view&edit-del=edit" else page = page & "Der er allerede en side som bliver vist på startsiden.<br>"_ & "Du skal fjerne fluebenet ved denne side før den side du er igang med at oprette kan blive vist på startsiden"_ & "<br><br>NOTE: Du kan altid senere sætte en side til at blive vist på startsiden.<br>"_ & "Klik på tilbage og fjernfluebenet ved denneside for at forsætte" end if
Men hvis du gerne vil have det andet skrevet, virker det nok på denne måde.. Når du har et ja/nej felt så skal du have tallet som en integer og ikke en streng... Så prøv dette...!
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.