Toon posts:

komma gescheiden waarden uitlezen

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

Verwijderd

Topicstarter
Beste Mensen,

Uit een form lees ik een veld en dit veld bevat 1 of meer getallen gesplitst met een komma. Nu ontstaat het probleem om de komma's tussen de getallen om te zetten naar een SQL regel.

Dus bijv. de waarde "1,5,12"
moet zoiets worden als:

SELECT *
FROM NAW
WHERE groepId = 1 OR groepId=5 OR groepId=12

De code die ik gebruik plaatst een OR teveel. Dus
groepId = 1 OR groepId=5 OR groepId=12 OR

Wie kan mij helpen?

Groeten van Jeroen

De gebruikte code

<%
strGroepId = Request.Form("GroepId")
aGetal = Split(strGroepId,",")
intAantal = Ubound(aGetal)
For intTeller = 0 to intAantal
Response.write "GroepId = " & aGetal(intTeller) & " OR "
Next
%>

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 05-05 14:01

thomaske

» » » » » »

Dit heet nu programmeren.. Ja kan in je loop toch vasstellen of je in de laatste iteratie zit? zo nee -> 'OR' aan de string toevoegen, anders niet..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Wat trouwens makkelijker is dan al die OR's, is rechtstreeks in de array zoeken:

SELECT *
FROM NAW
WHERE groepId IN ('1','5','12')


PHP voorbeeldje:
PHP:
1
2
3
SELECT *
FROM NAW
WHERE groepId IN ('" . implode("','", $array) . "')

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoi stokjeroen, en welkom op GoT. :)

Ik ga je topic sluiten om een aantal redenen. Om te beginnen is je vraag redelijk van basisniveau. Zelfs al ben je niet op de hoogte van het bestaan van de IN-operator die Wriker beschrijft, dan nog is het op jouw manier vrij makkelijk op te lossen door ofwel te checken of je met de laatste waarde bezig bent, en zo ja, géén OR eraan te plakken, ofwel door simpelweg achteraf de laatste 3 karakters van je opgebouwde string eraf te halen. Dat had je best zelf ook wel kunnen bedenken. ;)

Verder is er dus inderdaad gewoon de IN-operator die je hier prima toe kan passen. Overigens hoef je, als het getallen betreft die opgeslagen worden in een numeriek veld, geen aanhalingstekens te gebruiken, dus dat scheelt je weer een beetje; je kan namelijk gewoon die hele rits getallen in je query proppen. ;)

Verder zien we hier in Programming & Webscripting graag in de titel een tag met de gebruikte taal. In jouw geval had je dus even [ASP] of [SQL], of liefst zelfs [ASP/SQL] op kunnen nemen. Ook hebben we [code]-tags waartussen je code kan opnemen in je post; zou je die volgende keer willen gebruiken? Daarnaast hoef je niet te groeten onder je post, je naam staat ook naast je post, dus dat scheelt weer wat overbodige ruimte. :)

'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.


Dit topic is gesloten.