Php值在mysql查询后被截断
我在下面编写了计算加权平均值的代码。该算法是正确的,但我的问题是,当值$row['grade']为eg:9.5时,它会被截断为9,当值10时,它会被截断为1。从一些测试中,我认为在将值插入数组时会出现问题。我已经尝试了我所知道的一切,但我无法让它发挥作用。有什么想法吗?下面是代码:Php值在mysql查询后被截断,php,mysql,Php,Mysql,我在下面编写了计算加权平均值的代码。该算法是正确的,但我的问题是,当值$row['grade']为eg:9.5时,它会被截断为9,当值10时,它会被截断为1。从一些测试中,我认为在将值插入数组时会出现问题。我已经尝试了我所知道的一切,但我无法让它发挥作用。有什么想法吗?下面是代码: <?php require 'database_connect.php'; $username=$_SESSION["username"]; $sql="SELECT dm,grade from
<?php
require 'database_connect.php';
$username=$_SESSION["username"];
$sql="SELECT dm,grade from subject,attends where username='$username' AND grade>='5' and subject_code=code";
$result = mysqli_query($conn,$sql);
$i=-1;
while($row = mysqli_fetch_array($result)){
$i=$i+1;
$grade[$i]=$row['grade'];
if($row['dm']<=2){
$weight[$i]=1.0;
}elseif($row['dm']<=4){
$weight[$i]=1.5;
}else{
$weight[$i]=2.0;
}
}
if($i>=0){
$total=array_sum($weight);
$part=0;
for($j=0;$j<=$i;$j++){
echo $grade[$j].",";
echo $weight[$j]."|||";
$part=$part+$grade[$j]*$weight[$j];
}
$full=$part/$total;
// echo round($full, 2);
}else{
echo "0";
}
$conn->close();
?>
Put$grade=array()$权重=数组()代码>在while循环之前
编辑:在首次使用之前初始化数组总是一个好主意,因为如果$grade
碰巧是字符串,$grade[0]
引用将表示字符串的第一个字符,而不是数组的第一个元素
对于PHP5.4及更新版本,您还可以编写$grade=[]$重量=[]
发布您的数据库模式和subject\u code=code
这应该代表伪代码吗?如果没有,它在这里就失败了。旁注:因为您刚刚开始使用数据库查询编写代码。请尽早了解。var\u dump($row['grade'])
has9.5
?subject\u code是表attends中的外键,它在代码值中引用表主题