El foreach me funciona pero lo que quiero es que los datos me lo ponga donde yo quiero aver si me podeis ayudar gracias.
Esto es lo que me hace el foreach.

Código PHP:
<fieldset>
<legend align="center">Carrito</legend>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>Codigo</td>
<td>Nombre del Articulo</td>
<td>Cantidad</td>
<td>Precio</td>
</tr>
<?php
foreach ($carrito as $clave => $valor ){?>
<tr>
<td><?php echo $valor;?></td>
<td><?php echo $valor;?></td>
<td><input type="number" name="cantidad" value="<?php echo $valor;?>"/></td>
<td><?php echo $valor;?>€</td>
</tr>
<?php } ?>
</table>
</fieldset>
Código PHP:
if(!isset($cantidad)){$cantidad = 1;}
//consultar la base de datos
$sql = mysql_query("SELECT * FROM catalogo WHERE codigo=".$codigo."");
$row = mysql_fetch_array($sql);
//Si ya hemos introducido algún producto en el carrito lo tendremos guardado temporalmente
//en el array superglobal $_SESSION['mg_storeonline'], de manera que rescatamos los valores de dicho array
//y se los asignamos a la variable $carrito, previa comprobación con isset de que $_SESSION['mg_storeonline'] ya haya sido definida
if(isset($_SESSION['mg_storeonline']))
$carrito = $_SESSION['mg_storeonline'];
//introducir los items
$carrito = array('codigo'=>$codigo,'cantidad'=>$cantidad,'producto'=>$row['producto'],'precio'=>$row['precio']);
//guardarlos en la variable
$_SESSION['mg_storeonline']=$carrito;
Código PHP:
<a href='agregar-compra.php?".SID."&codigo=".$row['1']."'>Agregar al Carrito</a>
Gracias y espero vuestras respuestas.