Toon posts:

[asp] selectie vakejes en dat uit database laten halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een site gemaakt daar haal een code alle gevens uit een data base. Nu heb voor elke naam een selectie vakje gemaakt die de waarde heeft van zijn ID uit de database (dus uniek). Nu laat ik mensen klikken op afdrukken. Ze kunnen aanvinken welke ze willen afdrukken. dus bijvoorbeeld 1,5, 9 etc. Nu laat hij op de volgende pagina wel zien welke id's ik bedoel, maar hij haalt ze niet uit de database. ze moeten dan netjes onderelkaar komen. Ik wil ze uit de database halen met deze code:

set strSQL = ObjectVerbinding.Execute("SELECT * FROM data WHERE ( identificatie = " & code & ")")

Ik kan wel elke keer 1 vakje laten selecteren, dat werk wel maar niet meerdere

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Als de checkboxen allemaal dezelfde naam hebben krijg je in ASP een komma-gescheiden reeks terug. En daarmee kan je dan onderstaande query samenstellen:

"SELECT * FROM data WHERE identificatie IN (" & kommagescheiden_reeks & ")"

je moet natuurlijk met deze methode eerst even netjes controleren of er wel iets aangevinkt is (anders krijg je best wel een foutmelding ;))

btw:
Je variabele naamgeving is een beetje onduidelijk. Het resultaat van een connection.execute is namelijk een recordset object en geen SQL string (wat de naam impliceert).

Today's subliminal thought is:


Verwijderd

kijk hoeveel hokjes aangeklikt zijn en hang een lus in je code om de inlees-string uit te breiden met de waardes van de andere hokjes.....

iets als:

aantalHokjes = 5

sql = "SELECT * FROM data WHERE identificatie = ' " & code(1) & " ' "

for x = 2 to aantalHokjes
sql = sql & "OR identificatie = ' " & code(x) & " ' "
next

ObjectVerbinding.Execute(sql)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Annie schreef op 29 augustus 2002 @ 12:42:
Als de checkboxen allemaal dezelfde naam hebben krijg je in ASP een komma-gescheiden reeks terug. En daarmee kan je dan onderstaande query samenstellen:

"SELECT * FROM data WHERE identificatie IN (" & kommagescheiden_reeks & ")"

Spannend ook als iemand '1); delete from data; selet * from data where identificatie IN (1, '
als kommagescheiden reeks opstuurt ;)
ets als:

aantalHokjes = 5

sql = "SELECT * FROM data WHERE identificatie = ' " & code(1) & " ' "

for x = 2 to aantalHokjes
sql = sql & "OR identificatie = ' " & code(x) & " ' "
next
Daar is dus het IN (var1, var2, var3, etc) statementje voor bedoelt in SQL :)

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
't Is toch een Access db dus jou haxx0rs reeks werkt niet. :p

Verwijderd

Topicstarter
Ik heb de code hierboven geprobeerd maar het werkt niet, ik krijg het maar niet voor elkaar dat hij gaat loopen. Ik snap het volgende gedeelte ook niet precies!: sql = sql & "OR identificatie = ' " & code(x) & " ' "

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 03 september 2002 @ 21:17:
Ik heb de code hierboven geprobeerd maar het werkt niet, ik krijg het maar niet voor elkaar dat hij gaat loopen. Ik snap het volgende gedeelte ook niet precies!: sql = sql & "OR identificatie = ' " & code(x) & " ' "

Ik zou ook eerder naar de code van Annie kijken kwa tips, maar om het makkelijk te maken.
Druk je sql query af naar je scherm en kijk wat er fout zit in die query...
Wat dat precies doet zou je met een miniem beetje asp-kennis al moeten kunnen snappen, maar het komt gewoon op de concattenatie van wat extra vars aan je query neer.

Verwijderd

Topicstarter
Ben er achter wat het probleem was ik moest nog een extra variabele aanmaken. Het is gelukt met de code van annie!!thanxx anyway
Pagina: 1