gpt4 book ai didi

Php值在mysql查询后被截断

转载 作者:行者123 更新时间:2023-11-29 19:25:49 26 4
gpt4 key购买 nike

我编写了下面的代码来计算加权平均值。该算法是正确的,但我的问题是,当值 $row['grade'] 为例如: 9.5 时,它会被截断为 9 并且当值为 10 它被截断为 1。根据一些测试,我相信当将值插入数组时会出现问题。我已经尝试了我所知道的一切,但我无法让它发挥作用。有任何想法吗?代码如下:

<?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();

?>

最佳答案

放入 $grade = array(); $weight = array(); 在 while 循环之前。

编辑:在首次使用之前初始化数组始终是一个好主意,因为如果 $grade 不知何故碰巧是一个字符串,$grade[0] 引用那么意味着字符串的第一个字符,而不是数组的第一个元素

对于 PHP 5.4 及更高版本,您还可以编写 $grade = []; $weight = [];.

关于Php值在mysql查询后被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com