Avatar billede plasmon Nybegynder
15. november 2003 - 15:37 Der 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


Hvad er problemet??
Avatar billede ellebaek Nybegynder
15. november 2003 - 15:50 #1
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...
Avatar billede ellebaek Nybegynder
15. november 2003 - 15:54 #2
kaster mig lige ud i dit script alligevel...

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"


Sådan noget i denne stil måske...!
Avatar billede ellebaek Nybegynder
15. november 2003 - 15:56 #3
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...!
Avatar billede plasmon Nybegynder
15. november 2003 - 16:55 #4
super det virkede med: sql = "update sider set om_default = 0"

takker
Avatar billede ellebaek Nybegynder
15. november 2003 - 16:57 #5
Anytime

takker for pointz..
..Ellebæk!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester