gpt4 book ai didi

php - 如何使用 IF 语句使用 CSV 中的值填充列

转载 作者:行者123 更新时间:2023-11-30 23:32:47 24 4
gpt4 key购买 nike

我的脚本需要帮助。我正在上传一个包含两列 matric_no 和 score 的 CSV 文件。问题是我正在尝试根据每行分数列中上传的内容来填充主表中的成绩列。如果分数 >70,则成绩中的值应为 A,依此类推。我的maintable的结构是

MAINTABLE
score_id
matric_no
score
grade
course_code
level
semester_name
session

最后四列由用户从界面输入的值填充,我想动态生成成绩。

谢谢

<?php   

$fname = $_FILES['csv_file']['name'];
$chk_ext = explode(".",$fname);

$filename = $_FILES['csv_file']['tmp_ name'];
$handle = fopen($filename, "r");
if(!$handle){
die ('Cannot open file for reading');
}
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE)
{
$query = "INSERT INTO maintable (matric_no, score, session, semester_ name, course_code, level)
values('$data[0]', '$data[1]', '". $session."', '".$semester_name."', '". $course_code."', '".$level."')
ON DUPLICATE KEY UPDATE matric_no = matric_no";
mysql_query($query) or die(mysql_error ());
}
if ($row['score'] >= 70) {
$grade = 'A';
}
elseif ($row['score'] >= 60) {
$grade = 'B';
}elseif ($row['score'] >= 50) {
$grade = 'C';
}elseif ($row['score'] >= 45) {
$grade = 'D';
}elseif($row['score'] >= 40) {
$grade = 'E';
}else{
$grade = 'F';
}

$query = "UPDATE maintable
SET grade = 'A' WHERE score >= 70,
SET grade = 'B' WHERE score >= 60 AND score < 70 ,
SET grade = 'C' WHERE score >= 50 AND score < 60,
SET grade = 'D' WHERE score >= 45 AND score < 50,
SET grade = 'E' WHERE score >= 40 AND score < 45 ,
SET grade = 'F' WHERE score < 40" mysql_query($query) or die(mysql_error ());
fclose($handle);
?>

感谢您的帮助。注意:请原谅我的格式和缩进。我没有不尊重这个社区的意思。谢谢

最佳答案

使用MySQL Case

UPDATE maintable
SET grade = CASE
WHEN score >= 70 THEN 'A'
WHEN score >= 60 THEN 'B'
WHEN score >= 50 THEN 'C'
WHEN score >= 40 THEN 'D'
WHEN score >= 30 THEN 'E'
ELSE 'F'

关于php - 如何使用 IF 语句使用 CSV 中的值填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9728271/

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