Storing data from an array to a session

Ok, heres my question. i have a array thats calling my data from a mysql database and displaying it in a table
i want to make it so each new row in the table is a seperate form, and when add to cart is clicked the data from that row is added to a session, can anyone let me know the easiest way to do this

 while ($row= mysql_fetch_array ($result, MYSQL_ASSOC)){
                  
                  print "<tr bgcolor=\"#666666\">";
            print "<td>
                              <form method=\"post\" action=\"punk.php\">
                              $row[ProductID]
                              </td>";
            print "<td>$row[ProductArtist]</td>";
            print "<td>$row[ProductName]</td>";
            print "<td>$row[ProductType]</td>";
                print "<td>$row[ProductDescription]</td>";
            print "<td><img src=\"$row[ProductImage]\"></td>";
            print "<td>$$row[ProductCost]</td>";
                  print "<td>
                              <input type=\"submit\" name=\"addtocart\" value=\"Add To Cart\">
                              </form>
                           </td>";
            print "</tr>";
            }
            print "</table>";
        }

thats the end of my array and table, how can i make it so that data from the add to cart button is on is stored in a session to be displayed on another page.

any help is greatly appreciated

thx
LVL 1
shrocksAsked:
Who is Participating?
 
ldbkuttyCommented:
Assign the rows in hidden variables in the form. In the action page, you can retrieve the posted values and assign them to session.

<?php
while ($row = mysql_fetch_array($result))
{
    $ProductID = $row['ProductID'];
    $ProductArtist = $row['ProductArtist'];
    $ProductName = $row['ProductName'];
    $ProductType = $row['ProductType'];
    $ProductDescription = $row['ProductDescription'];
    $ProductCost = $row['ProductCost'];
?>    
    <tr bgcolor="#666666">
      <td>
       <form method="post" action="punk.php">
       <?php echo $ProductID; ?>
      </td>
      <td><?php echo $ProductArtist; ?></td>
      <td><?php echo $ProductName; ?></td>
      <td><?php echo $ProductType; ?></td>
      <td><?php echo $ProductDescription; ?></td>
      <td><img src="<?php echo $row['ProductImage']; ?>"></td>
      <td><?php echo $ProductCost; ?></td>
      <td>
        <input type="submit" name="addtocart" value="Add To Cart"/>
       <input type="hidden" name="ProductID" value="<?php echo $ProductID; ?>"/>
       <input type="hidden" name="ProductArtist" value="<?php echo $ProductArtist; ?>"/>                   
       <input type="hidden" name="ProductName" value="<?php echo $ProductName; ?>"/>
       <input type="hidden" name="ProductType" value="<?php echo $ProductType; ?>"/>
       <input type="hidden" name="ProductDescription" value="<?php echo $ProductDescription; ?>"/>
       <input type="hidden" name="ProductCost" value="<?php echo $ProductCost; ?>"/>
       </form>
      </td>
    </tr>
<?php            
    }
?>            

In punk.php:
========

<?php
session_start();
if(isset($_POST['addtocart']) && !empty($_POST['addtocart']))
{
    $_SESSION['ProductID'] = $_POST['ProductID'];
    $_SESSION['ProductArtist'] = $_POST['ProductArtist'];            
    $_SESSION['ProductName'] = $_POST['ProductName'];
    $_SESSION['ProductType'] = $_POST['ProductType'];
    $_SESSION['ProductDescription'] = $_POST['ProductDescription'];
    $_SESSION['ProductCost'] = $_POST['ProductCost'];
}
?>
0
 
ldbkuttyCommented:
>>  Assign the rows in hidden variables in the form.

should better read:

 Assign the row values as hidden variables inside the form.
0
 
shrocksAuthor Commented:
thanks for you answer, thats exactly what i was looking for, thank you
0
 
ldbkuttyCommented:
you are welcome and thanks for the points. :=)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.