Avatar billede fun22 Nybegynder
13. december 2005 - 21:08 Der er 10 kommentarer og
1 løsning

Hvorfor vil den ikke bytte om?

Hej

Jeg skal have lavet et script hvor at man kan arangere menuen som man vil..

<%
if Request.Querystring("move") = "op" then

                id = Request.Querystring("id")
               
                id1 = id-1

                SQL = "SELECT * FROM bs_sider WHERE orden ="&id1
                Set rs = Conn.Execute(SQL)
               
                NotId = rs("id")
               
                strSQL = "UPDATE bs_sider SET orden = '" &id&"' WHERE orden="&id1                         
                Conn.Execute(strSQL)

                strSQL1 = "UPDATE bs_sider SET orden = '" &id1&"' WHERE orden='"&id&"' AND NOT id = '"&NotId&"'"
                response.write strsql1                         
                Conn.Execute(strSQL1)
               
end if
%>

når så man kalder siden med ?move=op&id=5 så skulle den der nu hedder 4 komme til at hedde 5 og omvendt.. Men det er som om den ikke uidføre den sidste strsql1 funktion..

Nogen der kan hjælpe?
Avatar billede there-is-only-xul Nybegynder
13. december 2005 - 21:12 #1
Er du sikker på at

id1 = id-1

er lovlig, uden at typecaste til et integer først ?
Avatar billede fun22 Nybegynder
14. december 2005 - 16:48 #2
hvad mener du?
Avatar billede thesurfer Nybegynder
15. december 2005 - 12:01 #3
id = CInt(id)
id = id - 1

Men du skal være 100% sikker på, at Request.Querystring("id") indeholder en tal værdi!

Brugeren kan jo pille ved Request.Querystring("id").. stol aldrig på brugeren.. lav kontrol.

PS: Lav altid mellemrum, når du bruger "&".. f.eks.: orden = '" & id &"' WHERE

/theSurfer
Avatar billede thesurfer Nybegynder
15. december 2005 - 12:11 #4
Eller:
id = CInt(Request.Querystring("id"))
id = id - 1

Men se 15/12-2005 12:01:19.

/theSurfer
Avatar billede fun22 Nybegynder
15. december 2005 - 20:16 #5
Det virker ikke.. Problemet er at den her virker:

strSQL = "UPDATE bs_sider SET orden = '" &id&"' WHERE orden="&id1                         
                Conn.Execute(strSQL)

Men den her køre den ikke:

strSQL1 = "UPDATE bs_sider SET orden = '" &id1&"' WHERE orden='"&id&"' AND NOT id = '"&NotId&"'"
                response.write strsql1                         
                Conn.Execute(strSQL1)

Jeg fatter ikke hvorfor den ikke vil køre den sidste? Eller også er der noget galt med den..
Avatar billede cpufan Juniormester
15. december 2005 - 20:50 #6
strSQL1 = "UPDATE bs_sider SET orden = '" &id1&"' WHERE orden="&id&" AND NOT id = "&NotId
                response.write strsql1                         
                Conn.Execute(strSQL1)
Avatar billede fun22 Nybegynder
15. december 2005 - 22:50 #7
virker stadig ikke :(
Avatar billede thesurfer Nybegynder
16. december 2005 - 09:55 #8
fun22> Hvis du får en fejlmeddelelse, kopier den og sæt den ind her.

1)
Jeg kan se at du bruger response.write strsql1. Tilføj denne kode lige efter:
response.end

Hvad bliver resultatet?

2)
Lav altid mellemrum, når du bruger &-tegn: " ... set nacn = '" & variabelnavn & "' ...

2)
Når du vil bruge typen tal, skal du ikke bruger '-tegnene. Dvs:
"...set orden = " & id & " ..."

Når du bruger tekst, skal der bruges '-tegn:

"...set navn = '" & navn & "' ..."

Læs venligst hele dette indlæg igennem, grundigt.

/theSurfer
Avatar billede cpufan Juniormester
16. december 2005 - 10:37 #9
jeg tror heller ikke at denne virker:

AND NOT id = "&NotId

mere hensigtsmæssigt er:

AND id <> "&NotId
Avatar billede fun22 Nybegynder
16. december 2005 - 14:02 #10
Det var det der var galt.. cpufan smider du et svar?

Thesurfer >> Tak for dit indlæg, det har jeg nemlig tit døjet med ;)
Avatar billede cpufan Juniormester
16. december 2005 - 14:26 #11
kommer her
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