First problem I notice is here:
foreach($_POST['$scoreweek']
I'm guessing that you don't have a field name that contains a literal dollar sign followed by 'scoreweek'. What's the dollar sign doing in the array index, then?
Also, inside the loop you've got two problems with your query:
$sql1="UPDATE tbl_gks SET '$scoreweek' ='$value' WHERE gkid_gk='$key'";
For one, $scoreweek is undefined - perhaps you meant $_POST['scoreweek'] instead?
Also, single quotes in a MySQL query denote strings, not identifiers (e.g. column names). For that, either don't use any quotes at all, or use backticks (`) instead.
In addition, note that your code is vulnerable to SQL injection attacks (or just plain SQL errors). User-supplied data should never be placed directly into a SQL query. Instead, it must be sanitized with a function such as [man]mysql_real_escape_string/man (hint: you define a function, GetSQLValueString, that would do the job.. and yet you never actually use it).