Toon posts:

[ASP]Variabelen uit database halen en in andere tabel dumpen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo

Ik heb een script dat voor 99% werkt, maar er zit een klein foutje in...

dit is de code:
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
31
32
33
34
35
<%

'Haal de variabelen uit de querystring
barcode = Request.Form("barcode")

'Verbinding met database ter controle of de persoon al aangemeld is
set verbinding = server.createobject("ADODB.Connection")
verbinding.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\Inetpub\wwwroot\discotheek.mdb"

'Haal de gegevens van de persoon die we willen hebben op uit de database
SQLOPVRAGEN="SELECT Voornaam, Tussenvoegsel, Achternaam, Straat, Postcode, Woonplaats, Telefoon1, Telefoon2, "
SQLOPVRAGEN=SQLOPVRAGEN & "Geboortedatum, Sanctie, Bijzonderheden, Barcode, Datumtoegevoegd, Tijdtoegevoegd, Aantalbezoeken FROM Discotheekbezoekers "
SQLOPVRAGEN=SQLOPVRAGEN & "WHERE Barcode='" & barcode & "'"

set controle = verbinding.Execute("SELECT * FROM Aangemeld WHERE barcode='" & barcode & "';")
set uitvoer = verbinding.Execute(SQLOPVRAGEN)

if Not (controle.EOF = true and controle.BOF = true) then
Response.Redirect "pashouderaanmeldenfoutmelding.asp"

elseif (uitvoer.EOF = true and uitvoer.BOF = true) then
verbinding.Execute("INSERT INTO Aangemeld VALUES ('" & barcode & "', " & uitvoer(0) & "', " & uitvoer(1) & "', " & uitvoer(2) & "', " & uitvoer(14) & "';")
Response.Redirect "menu2.asp"

elseif Not (uitvoer.EOF = true and uitvoer.BOF = true) and (uitvoer(9)="Ja") or Not(uitvoer(10)="") then
verbinding.Execute("INSERT INTO Aangemeld (Barcode) VALUES ('" & barcode & "');")
Response.Write("<script>window.open('bezoekerheeftsanctieofopmerking.asp?streepjescode=" & barcode & "','hoofdpagina');</script>")

else verbinding.Execute("INSERT INTO Aangemeld (Barcode) VALUES ('" & barcode & "');")
Response.Write("<script>window.open('bezoekeraanmeldeninformatie.asp?streepjescode=" & barcode & "','hoofdpagina');</script>")

verbinding.Close
set verbinding = nothing 
end if
%>


Ik wil dus deze
code:
1
set uitvoer = verbinding.Execute(SQLOPVRAGEN)
variabelen ( uitvoer 0, 1, 2 en 14 ) invoeren in deze
code:
1
verbinding.Execute("INSERT INTO Aangemeld VALUES ('" & barcode & "', " & uitvoer(0) & "', " & uitvoer(1) & "', " & uitvoer(2) & "', " & uitvoer(14) & "';")
maar het probleem is, dat hij alleen de barcode in deze tabel zet, omdat die gedeclareerd is als variabele. De uitvoeren uit de SQLOPVRAGEN worden niet als variabelen verwerkt in de 'INSERT INTO Aangemeld' query...

Hoe kan ervoor zorgen dat dit wel gebeurd?

Verwijderd

Ik zou persoonlijk kiezen voor een andere benadering:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
'open db ; create command: oCommand

Dim SQLstring : SQLstring = "SELECT * FROM mytable"

Dim recordset
Set recordset = Server.CreateObject("adodb.recordset")
recordset.Open SQLstring, oCommand, 3, 3
IF NOT recordset.EOF THEN
    Response.Write( recordset.Fields("myField").Value )
ELSE
    Response.Write("Error")
END

[ Voor 23% gewijzigd door Verwijderd op 08-10-2005 00:04 ]


Verwijderd

Topicstarter
Met welk voordeel??

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
lekker leesbaar die code...
Visual Basic:
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
31
32
33
34
35
36
<%

'Haal de variabelen uit de querystring
barcode = Request.Form("barcode")

'Verbinding met database ter controle of de persoon al aangemeld is
set verbinding = server.createobject("ADODB.Connection")
verbinding.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\Inetpub\wwwroot\discotheek.mdb"

'Haal de gegevens van de persoon die we willen hebben op uit de database
SQL = "SELECT Voornaam, Tussenvoegsel, Achternaam, Straat, Postcode, Woonplaats, Telefoon1, Telefoon2, "
SQL = SQL & "Geboortedatum, Sanctie, Bijzonderheden, Barcode, Datumtoegevoegd, Tijdtoegevoegd, Aantalbezoeken FROM Discotheekbezoekers "
SQL = SQL & "WHERE Barcode='" & barcode
set uitvoer = verbinding.Execute(SQL)

SQL = "SELECT * FROM Aangemeld WHERE barcode='" & barcode
set controle = verbinding.Execute(SQL)

if Not (controle.EOF = true and controle.BOF = true) then
   Response.Redirect("pashouderaanmeldenfoutmelding.asp")
elseif (uitvoer.EOF = true and uitvoer.BOF = true) then
   verbinding.Execute("INSERT INTO Aangemeld VALUES ('" & barcode & "', " & uitvoer(0) & "', " & uitvoer(1) & "', " & uitvoer(2) & "', " & uitvoer(14) & "';")
   Response.Redirect("menu2.asp")

elseif Not (uitvoer.EOF = true and uitvoer.BOF = true) and (uitvoer(9)="Ja") or Not(uitvoer(10)="") then
   verbinding.Execute("INSERT INTO Aangemeld (Barcode) VALUES ('" & barcode & "');")
   Response.Write("<script>window.open('bezoekerheeftsanctieofopmerking.asp?streepjescode=" & barcode & "','hoofdpagina');</script>")

else
  verbinding.Execute("INSERT INTO Aangemeld (Barcode) VALUES ('" & barcode & "');")
  Response.Write("<script>window.open('bezoekeraanmeldeninformatie.asp?streepjescode=" & barcode & "','hoofdpagina');</script>")
end if

verbinding.Close
set verbinding = nothing 
%>


En huppake, dit leest stukken beter dacht ik zo

edti/

ik kan iets missen maar hoe kom je aan bv dit: 'uitvoer(9)'
wil je uitvoer.fields("naam") opvragen ofzo?
Volgens mij heb je de klok horen luiden maar weet je niet waar de klepel hangt.
als ik jou was zou ik eens een tutorial doorlezen over asp en recordsets.

edit2/

Zou je niet gewoon een count(*) doen als controle ipv steeds vragen of die eof is?

code:
1
2
3
4
5
6
7
8
9
SQL = "SELECT count(*) as aantal FROM Aangemeld WHERE barcode='" & barcode
set controle = verbinding.Execute(SQL)
aantal = controle.fields("aantal")

if aantal = 0 then
doe iets
elseif aantal > 0 then
etc
end if

[ Voor 42% gewijzigd door Mischa_NL op 08-10-2005 12:36 ]


Verwijderd

Topicstarter
Nou ik heb n tutorial gedaan op webmonkey.com maar die was uit 1999. zal vast daaraan liggen, dat deze manier van coden gewoon ouder is...

zowieso bedankt voor het fixen van de code...

uitvoer(9) werkt wel. Dat is het 10 veld wat uit de query uitvoer komt...