Well I'd query a few things:
1) Why do you do two separate updates when you could update both fields at the same time in one query? (Or maybe you are doing this to debug?)
2) Why do you copy the values:
$acc_no1 = '$_POST[acc_no1]';
$amount1 = '$_POST[amount1]';
$desc1 = '$_POST[desc1]';
and then use the $_POST values, not the new variables...
3) I would have written:
$_POST['acc_no1']
where you've written
'$_POST[acc_no1]'
I'm not entirely sure you're using that correctly but in your final UPDATE you would appear to be updating a TEXT field on the database, which means you'd need to have it in quotes. I would guess that you would do better with something along the lines of:
$desc1 = addslashes($_POST['desc1']);
//.....
$through = "UPDATE details SET desc = '$desc1' WHERE item = '$_SESSION[item]'";
mysql_query($through) or die ('Error , insert query failed');
//...OR even
$through = "UPDATE details SET desc = '".$desc1."' WHERE item = '$_SESSION[item]'";
mysql_query($through) or die ('Error , insert query failed');
I point out the latter form just in case something happens with the ' ' marks but it shouldn't be a problem.