so if they are integer then at the very least remove the quote marks from your INSERT statement around these variables
it helps when debugging scripts to assign the SQL to a variable which you cna then examine, rather than create the SQL inside a function call
Also its considered 'bad form' to store derived data such as $Total at the same time as you store its constituent parts
if you don't do anything with $V1 etc then there is little point in assigning them to variables before creating your SQL variable
PHP Code:
$strSQL = "INSERT into answr(P1,P2,P3,TOTAL)
values(".$_POST['v1'].",".$_POST['v2'].",".$_POST['v3'].",".$_POST['TOTAL'];
mysql_query($strSQL) or die(mysql_error());
if you are struggling on an insert then make certain your SQL is sane by debugging it (either use a debugger (Im guessing you are not using NetBeans or Eclipse or other IDE that supports debugging, or just send the value of the SQL variable straight ot he output stream using die(echo $strSQL)