Avatar billede justdoit Nybegynder
18. oktober 2002 - 10:33 Der er 34 kommentarer og
1 løsning

Loop fx 5 gange??

Mit script looper til alt er vist sådan:

1,2,3,4,5,6,7,8 (og slutter ikke med komma)

Kvordan får jeg den til at loope fx. 5 gange og derefter skrive 1,2,3,4,5.... ??

Her er min kode:

<% DO UNTIL objRec2.EOF %>
        <%=("<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>")%>
            <%
            objRec2.movenext
            If NOT objRec2.EOF then response.write ", "
            If objRec2.EOF then response.write ""
            LOOP
            %>
Avatar billede grunken Nybegynder
18. oktober 2002 - 10:52 #1
sådan noget ligende !

<%
For X = 1 TO 5
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If X < 5 Then
  response.write ","
Else
  response.write ""
End IF
objRec2.movenext
End If
NEXT
%>

-Grunken
Avatar billede justdoit Nybegynder
18. oktober 2002 - 11:05 #2
Jo det er rigtigt, men hvis X<5 så skal der ikke sluttes med " ,", hvordan
gør jeg det!?
Avatar billede justdoit Nybegynder
18. oktober 2002 - 11:14 #3
Lige nu skriver den 1,2,3,4,5....

Men hvis x = 3 skriver den:

1,2,3, (her skal ikke sluttes med (,))
Avatar billede medions Nybegynder
18. oktober 2002 - 11:21 #4
Så skriver du bare

lngLength = Len(x)
Left(x,lngLength)-1

Response.Write(x)

//>Rune
Avatar billede justdoit Nybegynder
18. oktober 2002 - 11:24 #5
Øhh hvor sætter jeg lige det ind?
Avatar billede a-torsten Nybegynder
18. oktober 2002 - 11:28 #6
<%
for i = 1 to 5
    If NOT objRec2.EOF Then
      response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"

        If i = 1 then
            response.write ""
        elseif i < 5 Then
            response.write ","
        elseif
            response.write ""
        end iF
    objRec2.movenext
    end If
next
%>
Avatar billede justdoit Nybegynder
18. oktober 2002 - 11:32 #7
a-torsten --> denne fejl kommer:

Der er en syntaksfejl
/HOVEDPROJEKT/default.asp, line 147, column 7
else if
------^
Avatar billede grunken Nybegynder
18. oktober 2002 - 11:42 #8
Så gør da sådan her :)

<%
Lobs = 5 ' her kan du skrive det antal gange den skal loope

For X = 1 TO int(Lobs)
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If X < int(Lobs) Then
  response.write ","
Else
  response.write ""
End IF
objRec2.movenext
End If
NEXT
%>
Avatar billede justdoit Nybegynder
18. oktober 2002 - 11:51 #9
Nu står der sådan:

Lobs = 8 ' her kan du skrive det antal gange den skal loope

For X = 1 TO int(Lobs)
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If X < int(Lobs) Then
  response.write ", "
Else
  response.write "..."
End IF
objRec2.movenext
End If
NEXT
%>

Men der er stadig et problem. For når der ligger mindre i db'en end der er loops, så slutter den jo stadig med at skrive ", " og der skal den slutte med "" - Men hvordan gør jeg ??
Avatar billede justdoit Nybegynder
18. oktober 2002 - 12:05 #10
What do I do ;-)
Avatar billede grunken Nybegynder
18. oktober 2002 - 12:07 #11
Øj hvor er der mange ting der skal tages højde for i sådan et lille script *GG*

<%
Lobs = 5 ' her kan du skrive det antal gange den skal loope
Max  = objRec2.RecordCount

For X = 1 TO int(Lobs)
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If X < int(Lobs) AND X < int(Max) Then 'evt. skal den ændres til "If X < int(Lobs) AND X < int(Max) - 1" leg med det !
  response.write ","
Else
  response.write ""
End IF
objRec2.movenext
End If
NEXT
%>

Prøv igen :)'
-grunken
Avatar billede grunken Nybegynder
18. oktober 2002 - 12:08 #12
Rolig NU Mulle GGG
Avatar billede grunken Nybegynder
18. oktober 2002 - 12:10 #13
Hvis den ik virker, så formaterer vi dæleme det samlede output :)
Avatar billede justdoit Nybegynder
18. oktober 2002 - 12:14 #14
Jeg må skuffe dig, men med du lige skrev gik det helt galt! Jeg tror mere på den i (18/10-2002 11:51:19) men som skal rettes lidt??
Avatar billede justdoit Nybegynder
18. oktober 2002 - 12:18 #15
Kan jeg ikke bruge noget med: If objRec2.EOF then response.write ""
Avatar billede grunken Nybegynder
18. oktober 2002 - 12:27 #16
Hvad laver den her af fejl ???, den checker jo hvor mange poster der er i databasen !

<%
Lobs = 5 
Max  = objRec2.RecordCount

For X = 1 TO int(Lobs)
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If (X < int(Lobs)) AND (X < int(Max)) Then
  response.write ","
Else
  response.write ""
End IF
objRec2.movenext
End If
NEXT
%>
Avatar billede tje_mentum Nybegynder
18. oktober 2002 - 12:30 #17
<%
  Dim seperator
  Dim i

  Do While Not objRec2.EOF
    If i < 5 Then
      Response.Write seperator 'Ved første loop er den tom
      seperator = ", "
    Else
      Response.Write "..."
      Exit Do
    End If

%> 

  <a onfocus="this.blur()" href="se_denne_side.asp?kategori="<%= objRec2("Id")%>">
    <%= objRec2("u_kategoriNavn")%>
  </a>

<%
    i = i + 1
    objRec2.movenext
  Loop
%>
Avatar billede justdoit Nybegynder
18. oktober 2002 - 12:36 #18
tje_mentum

Med denne bliver det slet ikke udskrevet nogel poster??
Avatar billede justdoit Nybegynder
18. oktober 2002 - 13:04 #19
Heelppp :)
Avatar billede grunken Nybegynder
18. oktober 2002 - 13:27 #20
Jeg vil gerne hjælpe hvis du er lidt samarbejdsvillig og fotæller hvad der sker !, jeg gider ikke og side og lave en database for at teste hvad du har lavet !
Avatar billede tje_mentum Nybegynder
18. oktober 2002 - 13:38 #21
Hmmm... sjovt jeg har lige testet det, og det virker perfekt her. Både hvis der er over og under 5 poster.

Hvilken fejl får du? Hvad skriver den på skræmen?
Avatar billede grunken Nybegynder
18. oktober 2002 - 13:39 #22
<%
Lobs = 5 ' tal
sep  = ""

  Do While Not objRec2.EOF

    If X < int(Lobs) Then

      Response.Write sep
      sep = "&nbsp;,"

    ElseIF X = int(Lobs)

      Response.Write "&nbsp;"
      Exit Do

    End If

    response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"

    X = X + 1

    objRec2.movenext
  Loop
%>
Avatar billede justdoit Nybegynder
18. oktober 2002 - 16:30 #23
Jeg syntes jeg har sagt hvad det er fejlen er hos mig. Med dette script som står her:

<%
Lobs = 8 ' her kan du skrive det antal gange den skal loope

For X = 1 TO int(Lobs)
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If X < int(Lobs) Then
  response.write ", "
Else
  response.write "..."
End IF
objRec2.movenext
End If
NEXT
%>

Virker det perfekt hvis der er over 8 poster.

Men hvis der er under 8 poster i databasen, så slutter det med et komma (,) og det skal det ikke! Der skal ikke være noget, altså skal der udskrives "" hvis der er under 8 poster!
Avatar billede justdoit Nybegynder
18. oktober 2002 - 17:47 #24
Help ;-)
Avatar billede justdoit Nybegynder
19. oktober 2002 - 13:29 #25
Var der ikke nogen der kunne finde ud af det??
Avatar billede tje_mentum Nybegynder
20. oktober 2002 - 11:00 #26
Hvis man må have hjælp må, man gøre sig fortjent til det! M.a.o. så bør du skrive lidt mere om hvilke fejl du får, i stedet for bare at skrive at det ikke virker. Skriv også hvad du har prøvet for at få det til at virker (f.eks. ved at indsætte Response.Write "Loop nummer :" & i).

Jeg er sikker på at mit forslag fra 18/10-2002 12:30:10 virker (uagtet antal poster i databsen, ado cursor osv.). De ander bør muligvis også virke. Men hvis man f.eks. bruger objRec2.RecordCount kræver det at man bruger den rigtige cursor ((adOpenForwardOnly, adOpenForwardOnly, adOpenStatic, adOpenKeyset, adOpenDynamic), i modsætning til Do While Not objRec2.EOF som altid vil virke, og i øvrigt også performer bedre i de fleste situationer. Hvis man ikke bruer den rigige cursor returenre objRec2.RecordCount -1, hvilket betyder at den ikke er i stand til at tælle antal rækker på forhånd.

Så fortæl mig lige hvorfor mit forslag ikke virker, og prøv at lade som om at du rent faktisk prøver at får det til at virker ;-)

Venligst
Thomas
Avatar billede justdoit Nybegynder
20. oktober 2002 - 12:00 #27
Jeg syntes nu at jeg for 3. gang prøver at beskrive hvad det er der går galt!

Hvis der er under 8 poster i databasen, så slutter det med et komma (,) og det skal det ikke! Der skal ikke være noget, altså skal der udskrives "" hvis der er under 8 poster!

tje_mentum: I dit tilfælde udskriver den kun poster under en af mine hovedkategorier, alle de andre er tomme - hvordan det så kan lade sig at gøre, det er uvidst!!
Avatar billede tje_mentum Nybegynder
20. oktober 2002 - 12:43 #28
Ok... jeg medgiver at dette er svært at se hvilke kommentarer der er svar på hvad her, men jeg taler kun om det script jeg sendte, og det er først nu du har fortalt andet end "det virker ikke", og du gør dig stadig ikke megen umage med at forklare hvilke problem du har.

Prøv lige med følgende script (måske havde jeg et " " omrking kategoriid'et, som ikke burde være der):

<%
  Dim seperator
  Dim i
  Dim debug

  debug = True 'Kan ændres til false for at skjule debug informationer
 
  If debug = True Then Response.wirte "Start loop<br>"

  Do While Not objRec2.EOF

    If debug = True Then Response.wirte "i = " & i & "<br>"

    If i < 5 Then
      Response.Write seperator 'Ved første loop er den tom
      seperator = ", "
    Else
      Response.Write "..."
      If debug = True Then Response.wirte "Exit loop<br>"
      Exit Do
    End If

    If debug = True Then Response.wirte "id = " & objRec2("Id") & "<br>"
    If debug = True Then Response.wirte "u_kategoriNavn = " & objRec2 _
                        ("u_kategoriNavn") & "<br>"

    'Jeg har ændret denne linje til det du oprindligt skrev... men den
    'syntax indeholder mange fejlmuligheder i modsæning til min
    'omrskrivning, som i øvrigt også giver rigtig farvekodning i
    'udviklingsværktøjer som f.eks. Visual InterDev.
    response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"

    i = i + 1
    objRec2.movenext
  Loop
%>

Hvis det virker i en af hovedkategorieren, har du så gjort dig ulejlighed med at undersøge hvad forskellen på den der virker og de der ikke gør er? Prøv at skrive en "stil" om hvad du prøver, hvilket resultat du får osv. Jeg/vi har jo ingen chance for at gætte hvad der går galt, når du ikke skriver noget. Det er ok, at være nybegynder, men selv eksperter er ikke tankelæser.  Prøv evt. at sende lidt mere af dit scipt, incl. din database adgang, og html kode. Evt. hele asp siden.

Har du nogle specielle data i din database? Indeholder dine tekster " eller ' tegn?

Venligst
Thomas
Avatar billede tje_mentum Nybegynder
20. oktober 2002 - 12:52 #29
Du kan også prøve dit oprindlige scipt med følgende tilretning:

<%
  Dim i

  Do While Not objRec2.EOF
%>
  <%=("<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>")%>
<%
    objRec2.Movenext
   
    If Not objRec2.EOF then
      If i < 5 Then
        Response.Write ", "
      Else
        Response.Write "..."
        Exit Do
      End If
    End If

    i = i + 1
  Loop
%>
Avatar billede justdoit Nybegynder
20. oktober 2002 - 13:06 #30
ok, jeg har lige testet denne: 20/10-2002 12:43:11, men jeg får altså en masse fejl på den, - som jeg gerne vil fortælle på, men jeg er lidt mere inde i denne:

<%
Lobs = 8 ' her kan du skrive det antal gange den skal loope

For X = 1 TO int(Lobs)
If NOT objRec2.EOF Then
  response.write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"
If X < int(Lobs) Then
  response.write ", "
Else
  response.write "..."
End IF
objRec2.movenext
End If
NEXT
%>

Og vil derfor helst fortsætte med at bruge den - håber du forstår :)

Jeg har også prøvet denne: 20/10-2002 12:52:28 -men her sker igen det at, den bliver udskrevet rigtigt når der fx er mere end 5 opster i db'en!

Så ser det sådan ud:

post1, post2, post3, post4, post5... (juhhh)

Men når der fx er 3 poster ser det sådan ud:

post1, post2, post3, (øvv)

skulle se sådan ud:

post1, post2, post3 (altså uden komma)


Er det noget du kan få til at virke ved at bruge det script jeg lige har skrevet ovenfor??
Avatar billede tje_mentum Nybegynder
21. oktober 2002 - 09:43 #31
Ja jeg er ikke meget for det, for jeg mener det er forkeret at loope et bestemt antal gange, når antallet af rækker ikke er garanteret. Men here goes:

<%
  Lobs = 8 ' her kan du skrive det antal gange den skal loope

  For X = 1 To Int(Lobs)
    If NOT objRec2.EOF Then
      Response.Write "<a onfocus=""this.blur()"" href=""se_denne_side.asp?kategori=" & objRec2("Id") & """>" & objRec2("u_kategoriNavn") & "</a>"

      'Flyt denne her op, så vi kan teste om .EOF = True
      objRec2.movenext
 
      'Tilføj denne linje, så der ikke tilføjes "..." eller "," hvis dette var den sidste post
      If objRec2.EOF Then Exit For

      If X < Int(Lobs) Then
        Response.Write ", "
      Else
        Response.Write "..."
      End If
    End If
  Next
%>

Venligst
Thomas
Avatar billede justdoit Nybegynder
21. oktober 2002 - 12:06 #32
Jeg ved godt at det ikke er så smart at loope et bestemt antal gange, men det er også kun lige i dette tilfælde at jeg gør det, andre steder på sitet, bliver det loopet til .EOF - men tak , for det var lige det jeg manglede, nu virker det :)

Mange tak
Avatar billede justdoit Nybegynder
21. oktober 2002 - 12:06 #33
tje_mentum

Kan jeg få et svar, så du kan få dine point?
Avatar billede tje_mentum Nybegynder
21. oktober 2002 - 12:27 #34
Svar? Point? Ahh... man får point for at hjælpe folk :-) Det vidste jeg ikke.

Bliver man så rig?`

Godt det virkede.

Venligst
Thomas
Avatar billede justdoit Nybegynder
21. oktober 2002 - 12:32 #35
Men du skal jo lige klikke i radiebuttom svar, så jeg kan give dig nogle point, med mindre du ikke vil have nogle!!
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