Hi,I am trying to create a site that sells music. I have page with a list of tracks, each with a submit button to buy the track. When a user clicks on one of the submit buttons, the catalog number gets inserted into a table called cart. The problem is that whichever submit button is pressed, only the first row is inserted.
Each line of the form has a hidden field with a value of the row from the tracks table in the database. Here is the code I have so far:

foreach ($cgi_object->param())
$form{$_} = $cgi_object->param($_);
$catnum = $form{cat_num};
$row = $form{id};
my $insert=qq~ insert into cart (id,cat_num) select id,catalog_num from tracks where id ='$row'~;
my $dbh=DBI->connect($connectionInfo,$user,$passwd);
my $sth=$dbh->prepare($insert);

When I execute the mysql statement in the database and replace $id with a row number I get the desired result. I'm guessing the problem has something to do with putting the insert into a loop? Not sure quite how to do this. Any help would be much appreciated. Thanks.