navigation
a webmaster learning community
     Home    Register     Search      Help      Login    
Sponsors

Shopping Cart Software
Ecommerce software integrated into Frontpage, Dreamweaver and Golive templates. No monthly fees and available in ASP and PHP versions.

Website Templates
We also have a wide selection of Dreamweaver, Expression Web and Frontpage templates as well as webmaster tools and CSS layouts.

Frontpage website templates
Creative Website Templates for FrontPage, Dreamweaver, Flash, SwishMax

Search Forums
 

Advanced search
Recent Posts

 Todays Posts
 Most Active posts
 Posts since last visit
 My Recent Posts
 Mark posts read

Microsoft MVP

 

Splitting a string twice

 
View related threads: (in this forum | in all forums)

Logged in as: Guest
Users viewing this topic: none
Printable Version 

All Forums >> Web Development >> ASP and Database >> Splitting a string twice
Page: [1]
 
JohnH

 

Posts: 43
Joined: 12/1/2004
Status: offline

 
Splitting a string twice - 4/21/2008 13:03:39   
Hi all,

I have a string that looks like this:

183*22,193*3,150*10

Basically, the 183, 193 and 150 are product codes and the 22, 3 and 10 are quantities.

I want to be able to split the string out so that the product code and quantities are in seperate arrays.

I have managed to seperate individual product codes and quantities by using the following code.
	<%
	Dim basket
	Dim array
	basket = Request.Cookies("ShoppingCart")
	array = split(basket,",")
	For Each item In array
	Response.Write(item & "<br>")
	Next
	%>


How do I know split these out by detecting the *?

Any help would be greatfully appreciated.

Many thanks,

John
rdouglass

 

Posts: 9167
From: Biddeford, ME USA
Status: offline

 
RE: Splitting a string twice - 4/21/2008 14:13:11   
How 'bout instead using a 2 dimensional array like this:

<%
Dim basket
Dim array
basket = Request.Cookies("ShoppingCart")
array = split(basket,",")

ReDim array2Dim(1,ubound(array))
For i = 0 To ubound(array)
array2Dim(0,i) = left(array(i),instr(array(i),"*")-1)
array2Dim(1,i) = mid(array(i),instr(array(i),"*")+1)
Next

'spit out what you got
For i = 0 To ubound(array2Dim,2)
Response.write(array2Dim(0,i) & "-" & array2Dim(1,i) & "<br />")
Next
%>


If you're comfortable with a single dimension array, maybe you're comfortable with a 2-D as well. I see this as being easier just grabbing each 'key:value' pair directly and finding each using:

instr(array(i),"*")

and then just add 1 or subtract 1 whether you're checking forward or backwards. Now there's another key part right here also:

ReDim array2Dim(1,ubound(array))

That is building a 2-D array based on the length of the first array.

Make sense? That's how I'd do it. Now we have them in a single 2-D array instead of being messing with several 1-D arrays. (In reality that's what a 2-D array is anyways.)

That help any?

_____________________________

Don't take you're eye off your final destination.

ASP Checkbox Function Tutorial.

(in reply to JohnH)
JohnH

 

Posts: 43
Joined: 12/1/2004
Status: offline

 
RE: Splitting a string twice - 4/22/2008 4:27:38   
Thanks rdouglas. Worked a treat.

Next question...

How can I now use the split arrays in a sql query? I want to be able to grab the product codes and use a SQL select command to find the product description and also multiply the quantities by the product price. I am ok with the SQL syntax, I just need some help in using the arrays. Tricky bit is that I won't know how many products will be selected.

Just to clarify, my original string was:

183*22,193*3,150*10

Thanks to your help, I know have the 183, 193 and 150 split out (these are product codes) and also the 22,3 and 10 are split (these are quantities). Taking the first product and quantity as an example I want to be able to do a sql query like the following:

select product_description, sum(product_price*22) as 'total price' from pricing where product_code='183'

so, the quantity 22 would be an array and so would the 183 and there could be a number of different product codes and quantities.

Hope that makes sense and you can help!

Thanks,

John

(in reply to rdouglass)
rdouglass

 

Posts: 9167
From: Biddeford, ME USA
Status: offline

 
RE: Splitting a string twice - 4/22/2008 8:46:15   
quote:

select product_description, sum(product_price*22) as 'total price' from pricing where product_code='183'


If you have them in that 2-array, you should be able to do something like this:

FOR i = 0 To ubound(array2Dim,2)
mySQL = "select product_description, sum(product_price*" & array2Dim(1,i) & ") as 'total price' from pricing where product_code='" & array2Dim(0,i) & "'"
'execute the SQL here
Next

That should loop thru each row of array2Dim and build each SQL statement on-the-fly.

That what you're looking for?


_____________________________

Don't take you're eye off your final destination.

ASP Checkbox Function Tutorial.

(in reply to JohnH)
JohnH

 

Posts: 43
Joined: 12/1/2004
Status: offline

 
RE: Splitting a string twice - 4/23/2008 6:03:27   
That worked perfectly, thanks again rdouglas.

Can you help me again though. The original string now has another parameter.

It now consists of product_id,quantity,hours. An example of two records would be 187*2*10,193*5*12.

The code you gave me before is

<%
Dim basket
Dim array
basket = Request.Cookies("ShoppingCart")
array = split(basket,",")

ReDim array2Dim(1,ubound(array))
For i = 0 To ubound(array)
array2Dim(0,i) = left(array(i),instr(array(i),"*")-1)
array2Dim(1,i) = mid(array(i),instr(array(i),"*")+1)
Next

'spit out what you got
For i = 0 To ubound(array2Dim,2)

Response.write (array2Dim(1,i) & " "  & (array2Dim(1,i) & "<br />"

Next
%>


How do I split this out a third time to grab the new hours data?

Thanks in anticipation.

John

(in reply to rdouglass)
rdouglass

 

Posts: 9167
From: Biddeford, ME USA
Status: offline

 
RE: Splitting a string twice - 4/23/2008 9:39:36   
quote:

ReDim array2Dim(1,ubound(array))
For i = 0 To ubound(array)
array2Dim(0,i) = left(array(i),instr(array(i),"*")-1)
array2Dim(1,i) = mid(array(i),instr(array(i),"*")+1)
Next


Just a little trickier and this time we should split it again. Something like this:

ReDim array2Dim(2,ubound(array))
For i = 0 To ubound(array)

tempArray = split(array(i),"*")
for j = 0 To 2 'or we could use ubound(tempArray)
array2Dim(j,i) = temparray(j)
Next


Next

That should be pretty close.

_____________________________

Don't take you're eye off your final destination.

ASP Checkbox Function Tutorial.

(in reply to JohnH)
JohnH

 

Posts: 43
Joined: 12/1/2004
Status: offline

 
RE: Splitting a string twice - 4/23/2008 9:43:13   
Thanks rdouglas, I am not sure where this code should be placed in the existing code you gave me - can you help?

Thanks,

John

(in reply to rdouglass)
rdouglass

 

Posts: 9167
From: Biddeford, ME USA
Status: offline

 
RE: Splitting a string twice - 4/23/2008 10:12:40   
This code:

ReDim array2Dim(2,ubound(array)) 
For i = 0 To ubound(array) 
tempArray = split(array(i),"*") 
for j = 0 To 2 'or we could use ubound(tempArray) 
array2Dim(j,i) = temparray(j) 
Next 
Next 

should replace this code:
ReDim array2Dim(1,ubound(array))
For i = 0 To ubound(array)
array2Dim(0,i) = left(array(i),instr(array(i),"*")-1)
array2Dim(1,i) = mid(array(i),instr(array(i),"*")+1)
Next


You'd grab your values the same way except you'd add a 3rd item in there:

For i = 0 To ubound(array2Dim,2)
Response.write (array2Dim(1,i) & " " & array2Dim(1,i) & " " & array2Dim(2,i) & "<br />")
Next

See, a 2 dimensional array can be thought of like a spreadsheet. You access each cell by specifying the column number and rownumber like so:

array(column,row)

but being sure to remeber that arrays are "0-based" meaning the first cell is array(0,0) and not array(1,1)

That help any?


_____________________________

Don't take you're eye off your final destination.

ASP Checkbox Function Tutorial.

(in reply to JohnH)
JohnH

 

Posts: 43
Joined: 12/1/2004
Status: offline

 
RE: Splitting a string twice - 4/23/2008 10:49:11   
Perfect!!!

If you were in the UK I would buy you a beer!

Thanks for all your help rdouglas

(in reply to rdouglass)
Page:   [1]

All Forums >> Web Development >> ASP and Database >> Splitting a string twice
Page: [1]
Jump to: 1





New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts