Avatar billede thewizard Nybegynder
25. december 2004 - 12:46 Der er 40 kommentarer og
1 løsning

DB loop-udskrift med array = problemer

<!-- #INCLUDE FILE="top.asp" -->
<td>
<b>Patches and utilities</b><br><br>



<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM user WHERE usrname = '" & session("user") & "';"
    rs.Open strSQL, Conn

%>

<%
downloadedID = RS("downloadedID")


%>
<br>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM downloads ORDER BY Date;"
    rs.Open strSQL, Conn


 
Do until RS.EOF

%>
<table width="100%" border="1">

<%

%>

<%
Dim arrfriends
  Dim n

  arrfriends = Split(downloadedID, ",")

            For n = 1 To UBound(arrfriends) -1
%>
<tr>
    <td><%=RS("name")%></td>

<td>
<%
i = CInt(arrfriends(n))
ID = CInt(RS("ID"))

                if i = ID then
                response.write("downloaded")
                end if

                if i <> ID then
                response.write(".")
                end if
            %>
</td>
</tr>
<%
  Next
%>


<%
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
</table></table>
<!-- #INCLUDE FILE="bund.asp" -->


Udskrift:

Noget                                    . 
Noget                                    downloaded 
Test                                    downloaded 
Test                                    . 

Hvis der bliver udskrevet: downloaded, skal den med "." ikke udskrives :s .. Pænt svært at overskue ;).

Nogen som kan hjælpe?
Avatar billede thewizard Nybegynder
25. december 2004 - 12:47 #1
Ikke sovet i 36 timer, så bær over med mig ;)
Avatar billede thesurfer Nybegynder
25. december 2004 - 12:50 #2
De her to

                if i = ID then
                response.write("downloaded")
                end if

                if i <> ID then
                response.write(".")
                end if

kan slåes sammen til

if i = ID then
  response.write "downloaded"
else
  response.write "."
end if


Men hvis "." ikke skal udskrives, er det vel bare:

if i = ID then response.write "downloaded"
Avatar billede thesurfer Nybegynder
25. december 2004 - 12:53 #3
Men du skal nok lave det "check" inden du begynder at udskrive:

            For n = 1 To UBound(arrfriends) -1
i = CInt(arrfriends(n))
ID = CInt(RS("ID"))
if i = ID then ' det er OK at udskrive:
%>

... udskriver ...


<%
end if
  Next
%>
Avatar billede thewizard Nybegynder
25. december 2004 - 13:04 #4
naaaaaa.. du forstår ikke

Hver eneste gang der laves et loop, gentages array'et ... f.eks.
Står der i databasen: 1 og 2. I array: 1 og 2..
Så vil den åbne 1 og checke mod array'es 1 og 2... derefter åbne 2'eren, og checke med array'ets 1 og 2.. :)

Så din løsning virker ikke, champ :)
Avatar billede thewizard Nybegynder
25. december 2004 - 13:22 #5
Dør fandme :/. Skod ting... har rodet med det de sidste 4 timer.
Avatar billede thesurfer Nybegynder
25. december 2004 - 13:23 #6
Disse linier skal stå foran "", idet de downloadedID sættes 1 gang:

Dim arrfriends
  Dim n

  arrfriends = Split(downloadedID, ",")

--

Jeg går ud fra, at det er sådan her:

* downloadedID = "1,2,3,4,5,osv"

* arrfriends(n) er en array, der indeholder tallene (separat) fra downloadedID

* arrfriends(nuværende værdi fra for-next) sammenlignes med RS(nuværende id fra databasen "downloads")

* hvis de er ens, udskriv ordet "downloaded"


Vil du se hvad en bruger har downloadet?
Avatar billede thewizard Nybegynder
25. december 2004 - 13:24 #7
en bruger i sin database: navn, usrname, password, osv osv... downloadedID..

Et eksempel på downloadedID = ,1,2,  <--- Start og slut med komma.
Avatar billede thewizard Nybegynder
25. december 2004 - 13:25 #8
Jeg vil ha' at ud fra de filer fra download-table skal der stå: <%=code%> fra download-tablen - hvis IKKE at brugeren har downloadet filen - hvis ID'et på downloaden står i user-tabellen ved hans brugernavn, så skal der står: Downloaded :)
Avatar billede thewizard Nybegynder
25. december 2004 - 13:28 #9
<%=RS("code")%>

^^, nøj jeg sover
Avatar billede thewizard Nybegynder
25. december 2004 - 13:39 #10
:) coder du, surfar? :p
Avatar billede thesurfer Nybegynder
25. december 2004 - 13:43 #11
..laver lidt af hvert.. coder, surfer, chatter, mailer, real-life ting...
Avatar billede thewizard Nybegynder
25. december 2004 - 13:44 #12
mener der er en commando der hedder "find" under array.. således at man kan finde tekst inde i arrayet. Ville jo gøre det hele nemmere :)

if array(find,RS("ID")) = true then
... response.write("downloaded")

else

response.write(RS("code"))

:p etc.
Avatar billede thewizard Nybegynder
25. december 2004 - 13:44 #13
hehe, mener coder du på mit problem? ;) Sidder og trykker f5 hvert minut.
Avatar billede thesurfer Nybegynder
25. december 2004 - 13:45 #14
"Et eksempel på downloadedID = ,1,2,  <--- Start og slut med komma.":

Hvorfor starter&slutter den med komma? :-)
Avatar billede thesurfer Nybegynder
25. december 2004 - 13:46 #15
..dit problem bl.a. :-)
Avatar billede thewizard Nybegynder
25. december 2004 - 13:46 #16
Det er noget med at splitte.. ellers får den ikke det første tal med..
Avatar billede thesurfer Nybegynder
25. december 2004 - 13:48 #17
Jo den gør :-)
Se evt "Arrays": http://www.html.dk/tutorials/asp/lektion8.asp

Det er generelt en god ide, at læse alle lektionerne: http://www.html.dk/tutorials/asp/

PS: Ang "f5 hvert minut".. hvis du bruger Opera (downloades fra www.opera.com ) kan du sætte den, til at automatisk at reloade hvert minut :-)
Avatar billede thesurfer Nybegynder
25. december 2004 - 13:49 #18
Ahhhhh.... "For n = 1 To UBound(arrfriends) -1"

Arrays starter ved 0, og ikke 1 :-)

Derfor: For n = 0 To UBound(arrfriends)
Avatar billede thewizard Nybegynder
25. december 2004 - 14:04 #19
Undskyld faldt lige i staver over zulu - miss universe i swinsuit.. DAMN

.: :) Kan du løse problemet? Roder selv med det.
Avatar billede thesurfer Nybegynder
25. december 2004 - 14:11 #20
Roder med det.. vil ikke som jeg vil..
Avatar billede thewizard Nybegynder
25. december 2004 - 14:12 #21
Nej vel? :) Det er bare noget irriterende noget at rodde med :)
Avatar billede thesurfer Nybegynder
25. december 2004 - 14:19 #22
Skal den skrive "downloaded" ved dem, den finder og "." ved dem den ikke finder?
Avatar billede thewizard Nybegynder
25. december 2004 - 14:21 #23
ja det er fint nok :) Det er en start - så ændrer jeg det senere.
Avatar billede thesurfer Nybegynder
25. december 2004 - 14:29 #24
jeg smutter lige en halv times tid.. skal spise.. kigger på det igen bagefter..
Avatar billede thewizard Nybegynder
25. december 2004 - 15:16 #25
:)
Avatar billede thesurfer Nybegynder
25. december 2004 - 16:20 #26
hmmm... det var en lang halv time :-)
Kigger lige på det.. :-)
Avatar billede thesurfer Nybegynder
25. december 2004 - 16:35 #27
Virker det her, som det skal?:

<%

dim dID, n, aF
' dID = downloadID
' aF = arrfriends

dim rsD, aR, r
' rsD = resultatet af SQL sætningen mod tabellen "downloads"
' aR = arrayen til rsD, simuler records
' r = recordssamling

dID = "2,6,8": aF = Split(dID, ",") ' simulerer downloadID

rsD = "1,2,3,4,5,6,7,8,10": aR = split(rsD, ",") ' simulerer records

for r = 0 to UBound(aR) '  = Do until RS.EOF

  for n = 0 to UBound(aF)

        if aF(n) = aR(r) then
          response.write "ID " & aR(r) & ": Downloaded</b><br>"
        end if

  next

next ' = loop

%>
Avatar billede thesurfer Nybegynder
25. december 2004 - 16:55 #28
Jeg har lavet det sådan, så den skriver hvilke id'er der er downloadet.. ingen grund til at skrive 100 id'er, der ikke er downloadet :-)

Man kunne evt og lave det sådan, så den bare skriver dem alle..

Downloaded: 2, 6, 8
Avatar billede thewizard Nybegynder
25. december 2004 - 17:47 #29
Ja det er godt, men ...

Udskrift:

ID 2: Downloaded
ID 6: Downloaded
ID 8: Downloaded

Skal se således ud..
ID 1: Not downloaded
ID 2: Downloaded
ID 3: Not downloaded
ID 4: Not downloaded
ID 5: Not downloaded
ID 6: Downloaded
ID 7: Not downloaded
ID 8: Downloaded
Avatar billede thesurfer Nybegynder
25. december 2004 - 17:49 #30
Sådan havde jeg det før, men jeg kan ikke se ideen i, at have 5x "Not downloaded".. og hvad nu hvis du tilføjer 100 mere?

Skal der så stå 100x "Not downloaded"? Er det ikke bare spild af plads..?
Avatar billede thewizard Nybegynder
25. december 2004 - 17:53 #31
Det bliver senere erstattet med "n" for not downloaded, eller noget :). Har ingen betydning pt.
Avatar billede thesurfer Nybegynder
25. december 2004 - 17:55 #32
OK.. bikser lige med det..
Avatar billede thewizard Nybegynder
25. december 2004 - 17:58 #33
Okay mester, bare læg det som svar, hvis det virker :). Så må jeg acceptere det sådan :). Er max træt nu, været oppe i maaaaaaaaange timer, så vil lige sove, og så skrives vi ved i morgen :). Hyg dig, og tak for hjælpen
Avatar billede thesurfer Nybegynder
25. december 2004 - 17:58 #34
Hygge :-)
Avatar billede thesurfer Nybegynder
25. december 2004 - 18:03 #35
Denne skriver både "Downloaded" og "Not Downloaded":

<%

dim dID, n, aF
' dID = downloadID
' aF = arrfriends

dim rsD, aR, r
' rsD = resultatet af SQL sætningen mod tabellen "downloads"
' aR = arrayen til rsD, simuler records
' r = recordssamling

dID = "2,6,8": aF = Split(dID, ",") ' simulerer downloadID

rsD = "1,2,3,4,5,6,7,8,10": aR = split(rsD, ",") ' simulerer records


dim stat
' stat = en switch så man kan checke om id'en er fundet


for r = 0 to UBound(aR) '  = Do until RS.EOF
stat = "Not downloaded"

  for n = 0 to UBound(aF)

        if aF(n) = aR(r) then
            stat = "Downloaded"
            exit for
        else
            stat = "Not Downloaded"
        end if
  next
   
    if stat = "Downloaded" then stat = "<b>Downloaded</b>"
    response.write "ID " & ar(r) & ": " & stat & "<br>"

next ' = loop

%>


Hvis du har brug for hjælp, med at implementere det i din kode, skal du bare sige til..
Avatar billede thesurfer Nybegynder
25. december 2004 - 18:09 #36
Kom lige til at tænke på response.write(".") ... er det for at tabellen ikke skal se forkert ud?
Det vil den gøre, hvis der ikke er noget indhold.. man indsætter bare et mellemrum:

response.write("&nbsp;")

Mellemrum/"&nbsp;" er usynligt, og viser tabellen korrekt.
Avatar billede thewizard Nybegynder
26. december 2004 - 04:07 #37
Morgen mester :) Jeg crashede vist i går... var max træt :p. Har prøvet din kode, og den virker kanon :). Skal lige prøve at implantere min egen kode her i nat, og så skriver jeg, så du kan læse det i morgen tidlig :).. dvs om et par timer ;). Hehe
Avatar billede thewizard Nybegynder
26. december 2004 - 04:10 #38
Tak fordi du dog dig din tid med koden :) Værdsat, værdsat :)
Avatar billede thewizard Nybegynder
26. december 2004 - 05:54 #39
Hehe ;). Du har glemt end if

if stat = "Downloaded" then stat = "<b>Downloaded</b>"
    response.write "ID " & ar(r) & ": " & stat & "<br>"

;). Sjovt nok brokkede den sig ikke over det, før jeg begyndte at skrive anden kode ind under det.
Avatar billede thewizard Nybegynder
26. december 2004 - 06:33 #40
Mester jeg har fået det implanteret med min kode, 100% success :). Tak for hjælpen. Velfortjente point.
Avatar billede thesurfer Nybegynder
26. december 2004 - 10:46 #41
Hehe... ja, der mangler "end if".. det er vist fordi jeg skiftede mellem 1-lines IF-sætning, og IF-block.. underligt at den ikke brokkede sig over det..

Jeg takker for points :-)
Godt nytår :-)
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