Toon posts:

[ASP] Doorzoek kolom

Pagina: 1
Acties:
  • 40 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo,

Misschien wel een erg domme vraag maar het lukt me nie..

Deze code heb ik nu
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%

Dim oConn
Dim oRS
Dim sSQL
Dim sColor


Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("IP.mdb"))

sSQL = "SELECT * From IP"
Set oRS = oConn.Execute(sSQL)

Dim IPtabel, IPnu

IPtabel=oRS("IP").Value
IPnu=Request.ServerVariables("remote_addr")

If iptabel=ipnu Then
Response.Redirect "Jammer.asp"
else Response.Redirect "OK.asp"

End if
%>



Ik heb 1 database (ip) met een aantal IP adressen.
Nu moet hij dus het ip waarmee de gebruiker nu op de pagina komt checken of deze in die database voorkomt.. Komt hij niet voor dan mag hij door (OK.asp) Staat hij wel in de database voor dan mag hij niet door (jammer.asp)

Maar hij checkt alleen het eerste record in de database... en kijkt dus niet verder.. dus stel ik zet local host in de database (127.0.0.1) en dan ga ik naar die pagina..
Dan gaat hij netjes naar jammer.asp omdat hij voorkomt in de database.
Maar zet ik nou ip 15.23.56.12 (bijv) in de database en 127.0.0.1 als 2e record dan ga ik gewoon naar OK.asp.. oftewel hij kijkt niet verder dan het 1e record..

Kan iemand mij helpe ? Alvast bedankt _/-\o_

  • Dukey
  • Registratie: November 2000
  • Laatst online: 12-04 22:43

Dukey

Ik heb dit getypt hier -->

Je krijgt een collectie uit je database en vervolgens moet je daar door heen "loopen" (moet ik nog meer zeggen?).

Ook wel de allergrootste _ _ _ _ _ (vul in met blokletters)


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Waarom voer je niet gewoon de query uit als volgt:

SQL:
1
SELECT * From IP WHERE IP = Request.ServerVariables("remote_addr")


Vervolgens check je of je een gevulde recordset heb teruggekregen, door bv:

Visual Basic:
1
2
3
4
If NOT oRS.BOF OR oRS.EOF Then
  'Hier je vervolg...
  Response.Redirect "OK.asp"
End if

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Why the hell wil je dit met ASP doen? SQL kan dat netjes voor je filteren...

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%

Dim oConn
Dim oRS
Dim sSQL
Dim sColor


Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("IP.mdb"))

sSQL = "SELECT * From IP WHERE ip = '" & Request.ServerVariables("remote_addr") &"'"
Set oRS = oConn.Execute(sSQL)

If Not oRS.EOF Then
  Response.Redirect "Jammer.asp"
else
  Response.Redirect "OK.asp"
End if

%>


edit:
Grrrr, spuit 32954. :P

[ Voor 16% gewijzigd door NMe op 20-10-2004 09:39 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dim oConn
Dim oRS
Dim sSQL
Dim sColor

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("IP.mdb"))

sSQL = "SELECT * From IP"
Set oRS = oConn.Execute(sSQL)

Dim IPtabel, IPnu

If oRS.BOF Then 

  do while not oRS.EOF

    IPtabel=oRS("IP").Value
    IPnu=Request.ServerVariables("remote_addr")

    If iptabel=ipnu Then
      Response.Redirect "Jammer.asp"
    else
      Response.Redirect "OK.asp"
    End if

  oRS.MoveNext
  loop

end if


Maar Woudloper zijn oplossing is wel de mooiste :)

[ Voor 14% gewijzigd door André op 20-10-2004 09:41 ]


Verwijderd

Topicstarter
Dank u wel peepz..
Why the hell :D ben net 2 dagen bezig met asp en sql... dus beginners fouten zijn bij mij niet uit te sluiten ;)
Hardstikke bedankt

[ Voor 3% gewijzigd door Verwijderd op 20-10-2004 09:46 ]


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 09:10
als je dan nog wil optimaliseren dan haal je alleen de waarde uit de tabel die je nodig hebt:

code:
1
sSQL = "SELECT IP From IP WHERE ip = '" & Request.ServerVariables("remote_addr") &"'"


Succes!

Everyday's an endless stream, of cigarettes and magazines...


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 20 oktober 2004 @ 09:44:
Dank u wel peepz..
Why the hell :D ben net 2 dagen bezig met asp en sql... dus beginners fouten zijn bij mij niet uit te sluiten ;)
Hardstikke bedankt
Je kan zeker voorkomen dat je veel beginnersfouten maakt door eerst veel te lezen. Het probleem dat je had had je heel makkelijk kunnen voorkomen door wat te Googlen naar een tutorial over databases in ASP. De eerste de beste die je opent zal je de loop-oplossing al laten zien.

De oplossing die ik hierboven aandroeg, en Woudloper boven mij, is de efficiëntste manier om dit te doen. Dit soort dingen vind je dan weer niet terug in tutorials, omdat dit afhankelijk is van de situatie. Maar je moet altijd proberen zoveel mogelijk door je database te laten oplossen, aangezien die daar gewoon beter in is. Je database kan met de juiste indexen sneller zoeken in een groot aantal records, dan dat ASP dat zal kunnen in een relatief trage loop. :)

@party42: dat is pas 2x gesuggereerd in dit topic... ;)

[ Voor 4% gewijzigd door NMe op 20-10-2004 10:20 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Niet helemaal. De suggestie van party42 kan het uitvoeren van de query versnellen aangezien je niet alles ophaalt (asterix), maar alleen het IP adres uit de tabel.

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Woudloper schreef op 20 oktober 2004 @ 10:24:
Niet helemaal. De suggestie van party42 kan het uitvoeren van de query versnellen aangezien je niet alles ophaalt (asterix), maar alleen het IP adres uit de tabel.
Ik denk in dit geval dat de tabel toch maar 1 kolom heeft dus whats the difference :)

Verwijderd

Topicstarter
NMe84 schreef op 20 oktober 2004 @ 10:16:
[...]

Je kan zeker voorkomen dat je veel beginnersfouten maakt door eerst veel te lezen. Het probleem dat je had had je heel makkelijk kunnen voorkomen door wat te Googlen naar een tutorial over databases in ASP. De eerste de beste die je opent zal je de loop-oplossing al laten zien.

De oplossing die ik hierboven aandroeg, en Woudloper boven mij, is de efficiëntste manier om dit te doen. Dit soort dingen vind je dan weer niet terug in tutorials, omdat dit afhankelijk is van de situatie. Maar je moet altijd proberen zoveel mogelijk door je database te laten oplossen, aangezien die daar gewoon beter in is. Je database kan met de juiste indexen sneller zoeken in een groot aantal records, dan dat ASP dat zal kunnen in een relatief trage loop. :)

@party42: dat is pas 2x gesuggereerd in dit topic... ;)
Ja klopt ik had ook veel naar gezocht.. maar kwam er niet uit...


al zat ik wel dicht bij want ik had eerst:
code:
1
2
3
4
5
Dim IP
IP= Request.ServerVariables("remote_addr")

sSQL = "SELECT * From IP Where IP=IP"
Set oRS = oConn.Execute(sSQL)


Maar dat werkte dus niet omdat hij dan in de kolom ging zoeken naar het woord IP dat dus niet voorkwam...

Wat ik ook had geprobeer:

code:
1
2
sSQL = "SELECT * From IP Where IP=Request.ServerVariables("remote_addr")"
Set oRS = oConn.Execute(sSQL)


Maar daar kreeg ik een error...

Toen had ik Request.ServerVariables("remote_addr") ook nog tussen "" aanhalings tekens geprobeerd. maar dat werkte ook nie..
Wist ik veel dat ik ook & tekens nodig had |:(

Maar al had ik dat goed dan had ik dat end of file gebeuren nog nie..

Maar toch bedankt :Y) _/-\o_ _/-\o_ _/-\o_

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 09:10
NMe84 schreef op 20 oktober 2004 @ 10:16:
[...]
@party42: dat is pas 2x gesuggereerd in dit topic... ;)
Woudloper schreef op 20 oktober 2004 @ 10:24:
Niet helemaal. De suggestie van party42 kan het uitvoeren van de query versnellen aangezien je niet alles ophaalt (asterix), maar alleen het IP adres uit de tabel.
Dankjewel. Voor de oplettende lezer inderdaad :) Ik wilde niet aannemen dat de tabel maar 1 kolom heeft, maar wellicht nog meer data vasthoudt.

Het gebruik van de asterix moet je volgens mij zo snel mogelijk afleren (tenzij het niet anders kan natuurlijk).

Everyday's an endless stream, of cigarettes and magazines...


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 20-05 08:06

sopsop

[v] [;,,;] [v]

Vergeet je ook niet je objectjes te trashen?! oRs en oConn...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:50

gorgi_19

Kruimeltjes zijn weer op :9

Volgens mij zijn we nu ongeveer een tutorial aan het schrijven :) Echter, er bestaan al tutorials over dit onderwerp, zie bijvoorbeeld http://www.asp101.com/samples/ . Via Google en de bekende sites (www.aspalliance.com, www.4guysfromrolla.com, www.asp101.com ) zijn echter nog meerdere te vinden en bieden een mooie basis.

Op www.w3schools.com/sql is daarnaast ook nog wel eea te vinden over SQL :)

Deze kan iig dicht :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.