Avatar billede jansangill Nybegynder
10. august 2007 - 20:25 Der er 17 kommentarer og
1 løsning

udtræk af variabel

Okay.

Jeg har loopet et recordsæt ud med en do while not rs.eof...

Alt virker fint, med undtagelse af at jeg ikke kan få skrevet hvor mange kommentarer der er på hver udtræk inden jeg kommer ind i selve posten.

Når jeg komme rind i posten kan jeg godt skrive antal af kommentar ud, da jeg jo medsender en id.

Men hvordan skal jeg løbe igennem tabellen og finde ud af hvor mange kommentarer der er på hver udtræk inden jeg går ind på selve posten?

Poster lige lidt kode her:

sql = "SELECT * from nyheder order by datostart DESC"
SET RS = Conn.Execute(sql)

Do while not RS.eof
       
response.write "ANTAL KOMMENTAR?"

        rs.movenext
    loop
    'slut
%>


Set RS2 = Server.CreateObject("ADODB.Recordset")
    SQL2 = "SELECT * from vurdering_rejsemael where status = 2 AND dest_id="&nn("id")
    RS2.Open SQL2, Conn, 1, 3


If Not (rs2.BOF Or rs2.EOF) Then
       
            do while not rs2.eof
               
                               
                        response.write "tekst"
               
               
                rs2.movenext
            loop
                %>

Har fjernet meget af koden, men jeg kan altså godt counte kommentar når jeg kommer ind på udtrækket, men ikke før.

Nogen der ved hvordan man skal få fat på antal kommentar før man trykker på udtrækket?
Avatar billede nielle Nybegynder
10. august 2007 - 20:32 #1
Du kan muligvis aflæse antallet som

RS.RecordsetName.RecordCount

Der er dog ingen garanti for at det virker i netop dit tilfælde.
Avatar billede nielle Nybegynder
10. august 2007 - 20:32 #2
Skulle være:

RS.RecordCount
Avatar billede nielle Nybegynder
10. august 2007 - 20:33 #3
Hvis dette ikke virker så kan man altid få værdien på denne måde:

sql = "SELECT count(*) AS antal FROM nyheder"

og så aflæse den som

rs("antal")
Avatar billede jansangill Nybegynder
10. august 2007 - 20:59 #4
ja dette virker også som sagt når jeg gør det når jeg er kommet ind på nyheden. Men vil gerne have at jeg kan vise det før nyheden.

Dette virker for mig når jeg er ind epå nyheden:

sql3 = "select count(*) as antal from vurdering_rejsemael where status = 2 AND dest_id="&nn("id")
SET RS3 = Conn.Execute(sql3)

antal_kommentar = RS3("antal")

men hvordan kan jeg få fat på antallet inden jeg kender "dest_id="&nn("id")"?
Avatar billede w13 Novice
10. august 2007 - 21:02 #5
Jeg har en kode til det, som jeg brugte til et forum. Desværre viser den "1" i stedet for "0" :(

Alternativt kan du spare en linje (og en variabel) med:
-------------------------------------
Set RS3=Conn.Execute("select count(*) as antal from vurdering_rejsemael where status=2 AND dest_id="&nn("id"))

antal_kommentar=RS3("antal")
Avatar billede nielle Nybegynder
10. august 2007 - 21:06 #6
Hvis du bruger count(*) metoden skal du lave to kald:

sql3 = "select count(*) as antal from vurdering_rejsemael where status = 2 AND dest_id="&nn("id")
SET RS3 = Conn.Execute(sql3)

antal_kommentar = RS3("antal")
' Udskriv antal_kommentar

sql3 = "select count(*) as antal from vurdering_rejsemael where status = 2 AND dest_id="&nn("id")
SET RS3 = Conn.Execute(sql3)

' Gennemløb løkke og udskriv indlægene.
Avatar billede nielle Nybegynder
10. august 2007 - 21:07 #7
Men du har ikke sagt noget om hvorvidt RecordCount virkede eller ej?
Avatar billede jansangill Nybegynder
10. august 2007 - 21:14 #8
returnere værdien 0, da jeg jo ikke ved hvad nn("id") er inden jeg kommer ind på nyheden.
Avatar billede nielle Nybegynder
10. august 2007 - 21:17 #9
Hvis den ikke virkede skulle den returnere -1. Hvis den returnere 0 indikere det at den virker, men at der er 0 poster i de udtrukne resultat.
Avatar billede jansangill Nybegynder
10. august 2007 - 21:17 #10
recordcount returnerer også værdien 0:(
Avatar billede jansangill Nybegynder
10. august 2007 - 21:19 #11
netop nielle. Har ikke sagt at recordcount ikke virker. Men den kan jo ikke finde nn("id") inden jeg kommer ind på nyheden, da id'en bliver snedt videre med linket.

<a href="<%=p1 & "/laesmere"%>&id=<%=rs("id")%>">L&aelig;s mere</a>
Avatar billede w13 Novice
10. august 2007 - 21:21 #12
Spurgte engang om det samme: http://www.eksperten.dk/spm/788953
Avatar billede jansangill Nybegynder
10. august 2007 - 21:27 #13
hehe tak for hjælpen begge. Det var mig der var dum ( as usual).

Løsningen var at putte det her ind i mit loop.

sql3 = "select count(*) as antal1 from vurdering_rejsemael where status = 2 AND dest_id="&rs("id")
SET RS3 = Conn.Execute(sql3)
antal1 = rs3("antal1")

response.write antal1



tak for hjælpen begge,svar tid:)
Avatar billede nielle Nybegynder
10. august 2007 - 21:32 #14
Svar :^)
Avatar billede w13 Novice
10. august 2007 - 21:34 #15
Jeg har ikke hjulpet, jeg troede, du ville hente det hele med kun én sql :)
Avatar billede nielle Nybegynder
10. august 2007 - 21:36 #16
Jeg synes at du skulle tage et kig på w13's link. Det er ikke super god performance at lave et kald pr. nyhed, og med en god join kan det sikkert klares i en SQL som w13 beskriver.
Avatar billede jansangill Nybegynder
10. august 2007 - 21:38 #17
vil kigge på hans link, tak for hjælpen.
Avatar billede w13 Novice
10. august 2007 - 21:50 #18
Dog laver den stadig den fejl, at den tror, 0 poster = 1 post :S
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