PHP和AJAX中的重复行

PHP和AJAX中的重复行,php,jquery,ajax,Php,Jquery,Ajax,因此,正如标题所示,PHP和AJAX给了我重复的行,我遇到了一个问题。我只想显示单元总数和平均成绩,但对于每个科目,它都会增加一行 阿贾克斯: $.ajax({ 传统的:是的, url:“getGrades.php”, 方法:“获取”, 数据:{ id:id, 学期:学期, 年份:年份 }, 数据类型:“JSON”, 成功:功能(数据){ $(“#成绩体”).children().remove(); $(“#gradeFoot”).children().remove(); 控制台日志(数据);

因此,正如标题所示,PHP和AJAX给了我重复的行,我遇到了一个问题。我只想显示单元总数和平均成绩,但对于每个科目,它都会增加一行

阿贾克斯:

$.ajax({
传统的:是的,
url:“getGrades.php”,
方法:“获取”,
数据:{
id:id,
学期:学期,
年份:年份
},
数据类型:“JSON”,
成功:功能(数据){
$(“#成绩体”).children().remove();
$(“#gradeFoot”).children().remove();
控制台日志(数据);
$(“#gradeLoad”).css(“显示”、“块”);
对于(变量i=0;i”+数据[i]。单位+“>”+数据[i]。mg+“>”+数据[i]。单位+”);
$(“#成绩表tfoot”).append('>单位总数:'+data[i].un+'>'+data[i].ave+'');
}
}
});
PHP:


[您只需在循环结束后添加Sum和GPA,如下所示

$.ajax({
传统的:是的,
url:“getGrades.php”,
方法:“获取”,
数据:{
id:id,
学期:学期,
年份:年份
},
数据类型:“JSON”,
成功:功能(数据){
$(“#成绩体”).children().remove();
$(“#gradeFoot”).children().remove();
控制台日志(数据);
$(“#gradeLoad”).css(“显示”、“块”);
对于(变量i=0;i”+数据[i]。单位+“>”+数据[i]。mg+“>”+数据[i]。单位+”);
}
$(“#成绩表tfoot”).append(“总单元数:”+数据[0]。un+”GPA>“+数据[0]。ave+”);
}

})试试这个。我想你需要把页脚从for循环中去掉

$.ajax({
            traditional: true,
            url: "getGrades.php",
            method: "GET",
            data: {
                id: id,
                semester: semester,
                year: year
            },
            dataType: "JSON",
            success: function(data){
                $("#gradeBody").children().remove();
                $("#gradeFoot").children().remove();
                console.log(data);
                $("#gradeLoad").css("display", "block");
                for(var i = 0; i < data.length; i++){
                    $("#gradeTable tbody").append('<tr class = "course"><td class = "course">'+data[i].subjectCode+'</td><td class = "course">'+data[i].subjectName+'</td>><td class = "course">'+data[i].units+'</td></td>><td class = "course">'+data[i].mg+'</td></td>><td class = "course">'+data[i].units+'</td></tr>');
                }
                    $("#gradeTable tfoot").append('<tr class = "course"><td class = "course"></td><td class = "course"></td>><td class = "course"><strong>Total No. of Units: </strong>'+data[i].un+'</td></td>><td class = "course"><strong>GPA</strong></td></td>><td class = "course">'+data[i].ave+'</td></tr>');


            }

    });
$.ajax({
传统的:是的,
url:“getGrades.php”,
方法:“获取”,
数据:{
id:id,
学期:学期,
年份:年份
},
数据类型:“JSON”,
成功:功能(数据){
$(“#成绩体”).children().remove();
$(“#gradeFoot”).children().remove();
控制台日志(数据);
$(“#gradeLoad”).css(“显示”、“块”);
对于(变量i=0;i”+数据[i]。单位+“>”+数据[i]。mg+“>”+数据[i]。单位+”);
}
$(“#成绩表tfoot”).append('>单位总数:'+data[i].un+'>'+data[i].ave+'');
}
});

魔鬼是什么
$data\[\]=$row;
试图实现:)
[<?php
require("connect.php");
$id = $_GET\['id'\];
$year = $_GET\['year'\];
$semester = $_GET\['semester'\];
$query = "
        SELECT *, SUM(s.units) AS un, ROUND(AVG(g.fg), 2) AS ave
        FROM subjectschedule AS ss
        JOIN subject AS s 
        ON s.subjectID = ss.subjectid
        JOIN grados as g
        ON g.subjectid = s.subjectID
        WHERE g.studentid = '$id'
        AND ss.academic_year_start = '$year'
        AND ss.semester = '$semester'
        GROUP BY ss.subSchedID

        ";
$retval = mysqli_query($db, $query);
$data = array();


while($row = mysqli_fetch_assoc($retval)){
    $data\[\] = $row;
}
echo json_encode($data);

?>
$.ajax({
            traditional: true,
            url: "getGrades.php",
            method: "GET",
            data: {
                id: id,
                semester: semester,
                year: year
            },
            dataType: "JSON",
            success: function(data){
                $("#gradeBody").children().remove();
                $("#gradeFoot").children().remove();
                console.log(data);
                $("#gradeLoad").css("display", "block");
                for(var i = 0; i < data.length; i++){
                    $("#gradeTable tbody").append('<tr class = "course"><td class = "course">'+data[i].subjectCode+'</td><td class = "course">'+data[i].subjectName+'</td>><td class = "course">'+data[i].units+'</td></td>><td class = "course">'+data[i].mg+'</td></td>><td class = "course">'+data[i].units+'</td></tr>');
                }
                    $("#gradeTable tfoot").append('<tr class = "course"><td class = "course"></td><td class = "course"></td>><td class = "course"><strong>Total No. of Units: </strong>'+data[i].un+'</td></td>><td class = "course"><strong>GPA</strong></td></td>><td class = "course">'+data[i].ave+'</td></tr>');


            }

    });