Avatar billede jimpp Nybegynder
19. juli 2004 - 20:30 Der er 17 kommentarer og
1 løsning

Matematisk problem mest af alt

Set RS_posts = Server.CreateObject("ADODB.RecordSet")
        RS_posts.open "Select Count(*) AS post From [forum_posts] WHERE topic_id = " & RS_topics("id") & "", Conn_sites
         

Hver gang RS_posts("post") er lig med 7 skal der ligges +1 til en variabel, feks y

Det der skal udskrives er "1, 2, 3, 4," hvis der foreksempel er 28 i RS_posts("post")

Håber en eller anden kan hjælpe, ellers er jeg på numsen :)
Avatar billede avlund Nybegynder
19. juli 2004 - 20:35 #1
y = 0

While Not RS_posts.EOF
  If RS_posts("post") = 7 Then
      y = y + 1
      If y > 0
        Response.Write ", "
      End If
      Response.Write y
  End If
Wend
Avatar billede Slettet bruger
19. juli 2004 - 20:37 #2
y = 0
Set RS_posts = Server.CreateObject("ADODB.RecordSet")
        RS_posts.open "Select Count(*) AS post From [forum_posts] WHERE topic_id = " & RS_topics("id") & "", Conn_sites
         

antal = rs("post") mod 7
for i = 1 to antal
  response.write "Antal:: " & i
next

Kan ikke lige huske syntaksen for mod men checker lige efter.
Avatar billede trer Nybegynder
19. juli 2004 - 20:37 #3
Kan du ikke bare dividere count med 7 og så loope - a la nedenstående pseudokode?

rs_pots.open "select round(count(*) \ 7) as post from [forum_posts] where ...
a=1
do while rs_posts("post")>a
  response.write(a)
  a=a+1
loop
Avatar billede Slettet bruger
19. juli 2004 - 20:39 #4
Ja det var ikke mod det skulle være den giver jo resten ved en division så det er nok trer's forslag du skal have fat i :-)
Avatar billede trer Nybegynder
19. juli 2004 - 20:48 #5
Bortset fra brugen af MOD er Berties foreslag jo egentlig også korrekt (og pænere skrevet) samt 15 sekunder før mit :-) så hvis du vælger mit forslag bør bertie få ½-delen af evt points.
Avatar billede jimpp Nybegynder
19. juli 2004 - 22:49 #6
avlund ->

Active Server Pages error 'ASP 0113'

Script timed out

/Forum_v_1.0/forum_traade.asp

The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools. (Der kan ikke pilles yderligere da jeg ikke sider med IIS'en selv)

Trer ->

Object Reqiured; "

Denne linje ->
rs_posts.open "select round(count(*) \ 7) as post from [forum_posts] where topic_id = " & RS_topics("id") & "", conn sites

:D
Avatar billede avlund Nybegynder
19. juli 2004 - 23:33 #7
Jajaja, jeg glemte lige en enkelt linie.

y = 0

While Not RS_posts.EOF
  If RS_posts("post") = 7 Then
      y = y + 1
      If y > 0
        Response.Write ", "
      End If
      Response.Write y
  End If
  RS_Posts.MoveNext
Wend
Avatar billede trer Nybegynder
20. juli 2004 - 00:33 #8
Hmm... Eneste jeg kan er, mangler der ikke en underscore mellem conn og sites?

Ellers brug Berties løsning og ret blot MOD til en \
Avatar billede jimpp Nybegynder
20. juli 2004 - 01:00 #9
avlund ->

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/Forum_v_1.0/forum_traade.asp, line 0
Avatar billede avlund Nybegynder
20. juli 2004 - 01:31 #10
... og der er indhold i databasen? Hmm, virker sært...
Avatar billede Slettet bruger
20. juli 2004 - 07:59 #11
Skal \ ikke rettes til /? Det er jo en division.
Avatar billede trer Nybegynder
20. juli 2004 - 09:18 #12
bertie> jo, dårlig vane med backslash...

Mht avlunds løsning - en count returnerer altid kun en række, så er der 28 rækker i tabellen får man 1 række ud med rs_posts("post") = 28
Avatar billede carpediem Nybegynder
20. juli 2004 - 10:57 #13
Set RS_posts = Server.CreateObject("ADODB.RecordSet")
        RS_posts.open "Select Count(*) AS post From [forum_posts] WHERE topic_id = " & RS_topics("id") & "", Conn_sites
If NOT RS_posts.EOF Then
  Antal = RS_posts("post")
End If

DivideBy = 7
y = Antal/DivideBy

If y => 1 Then
  For i = 1 to y
    If i > 1 Then
      Response.Write ", "
    End If
    Response.Write i
  Next
End If
Avatar billede avlund Nybegynder
20. juli 2004 - 23:04 #14
Åh ja, havde lige overset COUNT'en. Var åbenbart mere træt i går end jeg troede.
Avatar billede Slettet bruger
21. juli 2004 - 08:05 #15
Vi kan da lige samle den her:

y = 0
Set RS_posts = Server.CreateObject("ADODB.RecordSet")
        RS_posts.open "Select Count(*) AS post From [forum_posts] WHERE topic_id = " & RS_topics("id") & "", Conn_sites
         

antal = rs("post") / 7
for i = 1 to antal
  response.write "Antal: " & i
next
Avatar billede carpediem Nybegynder
21. juli 2004 - 08:44 #16
bertie>> Du får en fejl, hvis rs("post") er 0, for så laver du en nul division. Det er derfor jeg laver det tjek der hedder if y => 1 (If y > 0) Then
Avatar billede carpediem Nybegynder
21. juli 2004 - 08:46 #17
Eller det passer jo ikke helt. Du får ikke en fejl i divisionen, den bliver jo bare 0....
Avatar billede jimpp Nybegynder
15. september 2004 - 20:47 #18
Bedre sent end aldrig ikke :) - Lig svar og tak for jeres hjælp!
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