作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我的代码如下:-
$sql="SELECT student_id,DA1,DA2,DA3,DA4,DA5,DA6,HA1,HA2,HA3,HA4,HA5,HA6 from table";
$results = $result->query($sql);
while($row = $results->fetch_assoc())
{
$id = $row['student_id'];
$marks1 = $row['DA1'] + $row['HA1']/2 ;
$marks2 = $row['DA2'] + $row['HA2']/2 ;
$marks3 = $row['DA3'] + $row['HA3']/2 ;
$marks4 = $row['DA4'] + $row['HA4']/2 ;
$marks5 = $row['DA5'] + $row['HA5']/2 ;
$marks6 = $row['DA6'] + $row['HA6']/2 ;
$i = 1;
while($i <= 6)
{
$sql = "SELECT `grade`,`point` FROM `grades` where ${'marks' . $i} BETWEEN min and max";
$results = $result->query($sql);
$row = $results->fetch_assoc();
${'grade' . $i} = $row['grade'];
${'point' . $i} = $row['point'];
$i++;
}
$totalcredit = 20;
$sgpa= ($point1*$c1 + $point2*$c2 + $point3*$c3 + $point4*$c4 + $point5*$c5 + $point6*$c6) / $totalcredit ;
$sql = "UPDATE table SET `G1` = '$grade1', `G2` = '$grade2' ,`G3` ='$grade3',`G4` = '$grade4',`G5` = '$grade5',`G6` = '$grade6', `SGPA` = '$sgpa' WHERE student_id = '$id'";
$result->query($sql);
}
在这段代码中,我试图计算类(class)的成绩和 sgpa。在第一个查询中,选择所有详细信息并计算六个科目的总分。在第二个查询中,我将分数和分数存储在变量中,然后计算 sgpa。然后执行更新查询以将详细信息存储在数据库中。
该表由 100 行组成。该代码适用于第一行,但不适用于其他行并返回空值。我正在递归地尝试用所有学生的数据计算和更新表。如果有人可以帮助运行所有行的代码,我将不胜感激。
最佳答案
像这样更改内部 while 循环:-
$i = 1;
while($i <= 6)
{
$sql = "SELECT `grade`,`point` FROM `grades` where ${'marks' . $i} BETWEEN min and max";
$results2 = $result->query($sql);
$row = $results2->fetch_assoc();
${'grade' . $i} = $row['grade'];
${'point' . $i} = $row['point'];
$i++;
}
在您的代码中,$results 被覆盖,因此在内部循环中将其更改为 $results2 将解决您的问题。
关于php - 如何在另一个sql查询的一段时间内运行一个sql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013494/
我是一名优秀的程序员,十分优秀!