Hola:
lo que veo de tu codigo es que lo unico que hace es mostrar registros, no hay ningun codigo para guardar registros.
Como te estas generando varios formularios, pero solo uno es al que se le va a hacer submit, no es necesario que le generes un name diferente a cada elemento de los formularios, puedes ponerle a todos el mismo nombre para que al recuperar la informacion del post, sepas como se llaman los campos a recuperar, pero para cuestiones de validacion en javascript, si puedes poner un id diferente a cada elemento de los formularios.
Entonces, usando tu ejemplo, la idea sería:
Código PHP:
if ($row = mysql_fetch_array($result)){
echo "<center>";
echo "<form method='POST' action=''>";
echo "<div class='centrado'<table border = '1'> \n";
echo "<tr> \n";
echo "<td><b>Codigo</b></td> \n";
echo "<td><b>Nombre</b></td> \n";
echo "<td><b>Precio</b></td> \n";
echo "<td><b>Cantidad</b></td> \n";
echo "<td><b>Fecha</b></td> \n";
echo "<td><b>Comprar</b></td> \n";
echo "</tr> \n";
do {
echo "<tr> \n";
echo '<td>'."<input type='text' name='codigo' size='5' value='$row[0]'readonly />"."</td>";
echo '<td>'."<input type='text' name='nombre' size='30' value='$row[1]'readonly />"."</td>";
echo '<td>'."<input type='text' name='precio' size='5' value='$row[3]'readonly />"."</td>";
echo '<td>'."<input type='text' name='cantidad' size='5' value='$row[2]'readonly />"."</td>";
echo '<td>'."<input type='text' name='fecha' size='7' value='$row[4]'readonly />"."</td>";
echo "<td><input type='submit' name='buscar' value='Comprar'></td>\n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table></div></form>";
} else {
echo "¡ La base de datos está vacia !";
}
echo "</center>";
//PARA AGARRAR EL POST
if(isset($_POST['buscar'])) {
echo "<pre>";print_r($_POST);echo "</pre>"; // ves todo lo que te llega del post, luego lo borras
//aqui haces la insercion del registro
}
Saludos