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?
Annonceindlæg fra Thales
25. december 2004 - 12:47
#1
Ikke sovet i 36 timer, så bær over med mig ;)
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"
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 %>
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 :)
25. december 2004 - 13:22
#5
Dør fandme :/. Skod ting... har rodet med det de sidste 4 timer.
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?
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.
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 :)
25. december 2004 - 13:28
#9
<%=RS("code")%> ^^, nøj jeg sover
25. december 2004 - 13:39
#10
:) coder du, surfar? :p
25. december 2004 - 13:43
#11
..laver lidt af hvert.. coder, surfer, chatter, mailer, real-life ting...
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.
25. december 2004 - 13:44
#13
hehe, mener coder du på mit problem? ;) Sidder og trykker f5 hvert minut.
25. december 2004 - 13:45
#14
"Et eksempel på downloadedID = ,1,2, <--- Start og slut med komma.": Hvorfor starter&slutter den med komma? :-)
25. december 2004 - 13:46
#15
..dit problem bl.a. :-)
25. december 2004 - 13:46
#16
Det er noget med at splitte.. ellers får den ikke det første tal med..
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)
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.
25. december 2004 - 14:11
#20
Roder med det.. vil ikke som jeg vil..
25. december 2004 - 14:12
#21
Nej vel? :) Det er bare noget irriterende noget at rodde med :)
25. december 2004 - 14:19
#22
Skal den skrive "downloaded" ved dem, den finder og "." ved dem den ikke finder?
25. december 2004 - 14:21
#23
ja det er fint nok :) Det er en start - så ændrer jeg det senere.
25. december 2004 - 14:29
#24
jeg smutter lige en halv times tid.. skal spise.. kigger på det igen bagefter..
25. december 2004 - 15:16
#25
:)
25. december 2004 - 16:20
#26
hmmm... det var en lang halv time :-) Kigger lige på det.. :-)
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 %>
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
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
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..?
25. december 2004 - 17:53
#31
Det bliver senere erstattet med "n" for not downloaded, eller noget :). Har ingen betydning pt.
25. december 2004 - 17:55
#32
OK.. bikser lige med det..
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
25. december 2004 - 17:58
#34
Hygge :-)
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..
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(" ") Mellemrum/" " er usynligt, og viser tabellen korrekt.
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
26. december 2004 - 04:10
#38
Tak fordi du dog dig din tid med koden :) Værdsat, værdsat :)
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.
26. december 2004 - 06:33
#40
Mester jeg har fået det implanteret med min kode, 100% success :). Tak for hjælpen. Velfortjente point.
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 :-)
Kurser inden for grundlæggende programmering