Avatar billede exp-ralle Nybegynder
25. juli 2002 - 10:22 Der er 11 kommentarer og
2 løsninger

rs("Ip") delt op i en variabel...

Nogen der kan hjælpe mig med at "dele" rs("Ip") på i variablen Iper ?
Altså jeg har en database med alle dem der skal bannes og så ville jeg gerne at jeg kunne hente dem allesammen til en variabel (delt af | eller sådan noget så jeg kan bruge et Array).
Men det kan jeg sq ikke finde ud af...

Håber i kan hjælpe


Ralle
Avatar billede cape Nybegynder
25. juli 2002 - 10:44 #1
While not Rs.EOF
if Iper = "" Then 
  Iper = Rs("ip")
Else
  Iper = Iper & "," & Rs("ip")
End If
rs.MoveNext()
Wend

sådan uden brug af arrays
Avatar billede coolcoder Nybegynder
25. juli 2002 - 10:56 #2
sep = ""

While not Rs.EOF
  Iper = Iper & sep & Rs("ip")
  sep = "|"
  rs.MoveNext()
Wend

arrIPer = split(Iper, "|")
Avatar billede soes Nybegynder
25. juli 2002 - 13:06 #3
Du kan også gøre det på en anden måde:

Sql = "SELECT ip FROM IpBan"

Set Rs = Conn.execute(Sql)

Arr = Rs.GetRows()

og wupti, nu er din var Arr blevet til et array som indeholder alle de informationer fra din sql
Avatar billede soes Nybegynder
25. juli 2002 - 13:15 #4
når du skal hente værdier ud fra dit array skal du nu skrive:
Arr(0,noget) for at det virker.
Avatar billede exp-ralle Nybegynder
25. juli 2002 - 13:48 #5
Hmm...
soes --> Det med Arr(0, noget) hvad mener du præsist med det ?
Altså 0 er det linien i Arrayet ?
Og hvad skal der stå i noget ??
Avatar billede soes Nybegynder
25. juli 2002 - 13:58 #6
0 er den kollonne i tabellen IpBan hvor "noget" svarer til den række i tabellen
Avatar billede soes Nybegynder
25. juli 2002 - 13:59 #7
skal jeg skrive det sammen med resten af systemet? hvis ja, kan du så ikke sende mig db'en samt den pågældende fil til soes@mail.dk
Avatar billede exp-ralle Nybegynder
25. juli 2002 - 14:09 #8
Kan jeg så ikke bare gøre sådan her?:

Sql = "SELECT ip FROM IpBan"

Set Rs = Conn.execute(Sql)

Arr = Rs.GetRows()

Dim a
for a = LBound(Arr) to UBound(Arr)
Arr(1,a)
a = a + 1
Next

(Jeg er rimeligt nybegynder til ASP men) Kan ovenstående bruges ?
Avatar billede coolcoder Nybegynder
25. juli 2002 - 14:16 #9
du skal bruge:

...
for a = LBound(Arr,2) to UBound(Arr,2)
Arr(1,a)
a = a + 1
Next

Det skyldes at arrayet er 2-dimensionelt, og du skal kende længden på 2. dimension
Avatar billede exp-ralle Nybegynder
25. juli 2002 - 14:51 #10
Damn, jeg har 2 ip'er i min db (bare en test) men den vil kunne banne den øverste ip... why ?

her er min kode:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/asp/db.mdb")
Conn.Open DSN

strSQL = "Select Ip From Ban"

Set rs = Conn.Execute(strSQL)

Dim Arr, Remote, I

Arr = Rs.GetRows()
Remote = Request.ServerVariables("Remote_Addr")

I = 0
for I = 0 to UBound(Arr, 2)
If Remote = Arr(0, I) Then
Response.Redirect "http://www.jubii.dk"
End if
I = I + 1
Next

Conn.Close
Set Conn = Nothing
%>
Avatar billede coolcoder Nybegynder
25. juli 2002 - 14:57 #11
uha. Du tæller jo dobbelt.

En for..next løkke har indbygget tæller. Hver gang den er gennemløbet lægges en til variablen lige efter "for" - i dit tilfælde I

Altså skal du skrive den om til:

for I = 0 to UBound(Arr, 2)
If Remote = Arr(0, I) Then
Response.Redirect "http://www.jubii.dk"
End if
Next
Avatar billede exp-ralle Nybegynder
25. juli 2002 - 15:08 #12
lol en spasser fejl...
Avatar billede exp-ralle Nybegynder
25. juli 2002 - 15:23 #13
takker begge 2...
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