0

平均マークを取得するには、php/mysql で 3 つの割り当てマーク (ユーザーが挿入) を取得し、それらを合計してから 3 で割る必要があります。次に、この平均点を表の成績列に挿入する必要があります。

コードは次のとおりです。

$a1 = $_REQUEST['ass1'];
$a2 = $_REQUEST['ass2'];
$a3 = $_REQUEST['ass3'];
$id = $_REQUEST['id'];
$t = '3';
$sum = "'$a1' + '$a2' + '$a3'";
$average = (int)($sum / $t);

mysql_select_db("kackieco_final",$con);
$q = "UPDATE grades SET ass1=$a1, ass2=$a2, ass3=$a3, grade=$average WHERE id = $id";
4

2 に答える 2

1

$sum は、3 つの数字と算術演算子を含む文字列です。

文字通り

'1' + '2' + '3'
// string(15) "'1' + '2' + '3'"

http://codepad.org/Nxcdrkyk

引用符を取り除く

$sum = $a1 + $a2 + $a3;
// int(6)

http://codepad.org/RWvTSfv8

そして、あなたはあなたのintを得るでしょう

于 2012-04-19T17:38:19.490 に答える
0

コードで値を文字列として扱っている例を次に示します。

<?php
//Example values, simulate a request
$_REQUEST['id']='25';
$_REQUEST['ass1']='17';
$_REQUEST['ass2']='28';
$_REQUEST['ass3']='32';


//Get and check the values from the user
$values=array();
$values['id'] = (isset($_REQUEST['id']) && is_numeric($_REQUEST['id']))?$_REQUEST['id']:0;
$values[1] = (isset($_REQUEST['ass1']) && is_numeric($_REQUEST['ass1']))?$_REQUEST['ass1']:0;
$values[2] = (isset($_REQUEST['ass2']) && is_numeric($_REQUEST['ass2']))?$_REQUEST['ass2']:0;
$values[3] = (isset($_REQUEST['ass3']) && is_numeric($_REQUEST['ass3']))?$_REQUEST['ass3']:0;
$values['t'] = 3;

//one line add the variables together then devide by 3 and then round down or up depending on whats closest
$values['average'] = round(( ($values[1] + $values[2] + $values[3]) / $values['t'])); //26


$q = "UPDATE grades SET ass1={$values[1]}, ass2={$values[2]}, ass3={$values[3]}, grade={$values['average']} WHERE id = {$values['id']}";

echo $q;
//UPDATE grades SET ass1=17, ass2=28, ass3=32, grade=26 WHERE id = 25
?>
于 2012-04-19T17:29:44.287 に答える