Avatar billede agg-zeus Nybegynder
06. marts 2002 - 20:57 Der er 13 kommentarer og
1 løsning

count...

Når jeg fyrer følgende script af, så fucker min web-server! Hvad har jeg gjort galt.
Meningen med scriptet er, at det skal tælle alle poster i en tabel og så for hver gang kolonnen "fest" ikke matcher den fest man har valgt, så trække en fra...

set rs = server.createobject("adodb.recordset")
sql = "select count(*) as antal from img"
rs.open sql, cn
antal = rs.fields("antal")

rs.close

sql = "Select * from img WHERE fest = "&fest&" ORDER BY id ;"
sql = "SELECT * FROM img ORDER BY id;"
rs.open sql, cn
Do while not (rs.BOF or rs.EOF)
    If rs.fields("fest") <> fest Then
        antal = antal - 1
    End If
Loop

'Response.Write sql
'Response.Write fest

intMaxColumn = 2 'maximum antal billeder i hver række
intBilleder = antal 'antallet af billeder
intCount = 0 'Tæller
Response.Write "<tr>"
For x = 1 to intBilleder
intCount = intCount+1
If intCount > intMaxColumn Then
intCount = 1
Response.Write "</tr><tr><td height=""15""></td></tr>"
End If
Avatar billede erikjacobsen Ekspert
06. marts 2002 - 21:22 #1
Jeg tror du skal

Do while not (rs.BOF or rs.EOF)
    If rs.fields("fest") <> fest Then
        antal = antal - 1
    End If
    rs.movenext
Loop
Avatar billede coltau Juniormester
07. marts 2002 - 19:48 #2
Men - kan du ikke nøjes med denne sql-sætning

sql = "select count(*) as antal from img where fest=" & fest

Den vil jo give det ønskede resultat. Antallet af poster hvor feltet, fest = variablen: fest
Avatar billede agg-zeus Nybegynder
07. marts 2002 - 20:00 #3
coltau >> Nej det kan jeg ikke.... Så udskriver den alle billederne fra DB'en !!!


erikjacobsen >> Jeg får følgende fejl når jeg gør det :
fejl '80020009'
Undtagelse opstod.
Avatar billede coltau Juniormester
07. marts 2002 - 20:15 #4
Denne her udskriver kun den fest det drejer sig om.

set rs = server.createobject("adodb.recordset")
sql = "select * from img where fest=" & fest ' fest skal indeholde den fest man ønsker
rs.open sql, cn

intMaxColumn = 2 'maximum antal billeder i hver række
intCount = 0 'Tæller
' Gennemløb records
Do while not rs.EOF
  intCount = intCount+1
  If intCount > intMaxColumn Then
    intCount = 1
    Response.Write "</tr><tr><td height=""15""></td></tr>"
  End If 
 
  ' Indsæt resten af din for-løkke
 
  rs.MoveNext
Loop

Ellers må vi se hele koden. En "Undtagelse opstod" er jo en ftal fejl.
Avatar billede agg-zeus Nybegynder
07. marts 2002 - 20:24 #5
Okay, her kommer hele koden!

Response.Write "<table>"
Dim cn, cnstr
set cn = server.createobject("adodb.connection")
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;"
cnstr = cnstr & "Data Source=" & server.mappath("db.mdb") & ";"
cn.connectionstring = cnstr
cn.open

Dim intMaxColumn, intBilleder, intCount, x, antal, fest
fest = Request.Querystring("fest")

set rs = server.createobject("adodb.recordset")
sql = "select count(*) as antal from img where fest = "&fest&""
rs.open sql, cn
antal = rs.fields("antal")
rs.close

sql = "Select * from img WHERE fest = "&fest&" ORDER BY id ;"
'sql = "SELECT * FROM img ORDER BY id;"
rs.open sql, cn
Do while not (rs.BOF or rs.EOF)
    If rs.fields("fest") <> fest Then
        antal = antal - 1
    End If
    rs.movenext
Loop
'Response.Write sql
'Response.Write fest

intMaxColumn = 2 'maximum antal billeder i hver række
intBilleder = antal 'antallet af billeder
intCount = 0 'Tæller
Response.Write "<tr>"
For x = 1 to intBilleder
intCount = intCount+1
If intCount > intMaxColumn Then
intCount = 1
Response.Write "</tr><tr><td height=""15""></td></tr>"
End If

Response.Write "<td><a href=""#"" onclick=""newwin=window.open('../asp/vispics.asp?vis="&rs.fields("id")&"','html','toolbar=1,status=1,width=600, height=500, scrollbars=1');"">" _
    & "<img width=""200"" border=""0"" height=""150"" src="""&rs.fields("imgsrc")&""" alt="""&rs.fields("kommentar")&"""></a>" _
    & "<br><div class=""text"">("&x&")&nbsp;Tip en ven: <a href=""#"" onclick=""newwin=window.open('../asp/tipven.asp?mode=sms&tip=Tjek+dette+link+ud:&nbsp;www.fiddle.dk','sms','toolbar=1,status=1,width=600, height=300, scrollbars=1');"">SMS</a>&nbsp;|&nbsp;<a href=""#"" onclick=""newwin=window.open('../asp/tipven.asp?mode=mail&tip=Tjek+dette+link+ud:&nbsp;[a href=546http://www.fiddle.dk546]www.fiddle.dk[/a]','mail','toolbar=1,status=1,width=600, height=300, scrollbars=1');"">Mail</a><br>"&rs.fields("kommentar")&VbCrlf&"</div></td><td width=""15""></td>"
    rs.movenext

Next
Response.Write "</table>"
rs.close
set rs = nothing
cn.close
set cn = nothing


Jeg har indsat erikjacobsens forslag...
Avatar billede erikjacobsen Ekspert
07. marts 2002 - 20:25 #6
Hvad er din fest ? Et tal, en streng ?
Avatar billede agg-zeus Nybegynder
07. marts 2002 - 20:26 #7
det er ikke et tal det er en streng, i dette tilfælde er det "fest" ...
Avatar billede coltau Juniormester
07. marts 2002 - 21:05 #8
Du mangler disse linier:

rs.close
rs.open sql, cn

lige før denne linie:

intMaxColumn = 2 'maximum antal billeder i hver række

Du har jo genneløbet recordsættet en gang.
Avatar billede erikjacobsen Ekspert
07. marts 2002 - 21:07 #9
Hvis det er en streng skal du jo

sql = "select count(*) as antal from img where fest = '"&fest&"'"
Avatar billede coltau Juniormester
07. marts 2002 - 21:15 #10
erik --> Jeg har prøvet ovenstående kode og ændrede det du skriver. Det underlige skete: Jeg fik et udtræk på alle. Uden ' omkring får jeg de ønskede records. ???
det er imod alt logik. !
Avatar billede erikjacobsen Ekspert
07. marts 2002 - 21:18 #11
Nej, overhovedet ikke. Du får en sql-sætning med

  where fest=fest

altså hvor feltet fest er lig med sig selv. Det er det altid.

  where fest='fest'

sammenligner med ordet 'fest'
Avatar billede coltau Juniormester
07. marts 2002 - 21:18 #12
erik --> Glem det. Hvis jeg anvender ' omkring begge sql-sætninger så er den på plads. Pyha. Men det sjove er at det også virker uden. ?
Avatar billede coltau Juniormester
07. marts 2002 - 21:21 #13
Du har ret. !
Avatar billede agg-zeus Nybegynder
08. marts 2002 - 15:17 #14
coltau >> du får pointne..
Det var pga.
rs.close
rs.open sql, cn
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