Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将参数传递给Mysql函数_Php_Mysql - Fatal编程技术网

Php 将参数传递给Mysql函数

Php 将参数传递给Mysql函数,php,mysql,Php,Mysql,我在mysql中创建了这个函数,但该函数不起作用。其动机是从包含学生在每门学科、一个班级、一个学期和一个学校课程中的分数的视图中获得最高分数。subjectid、termid、sessionid和类将从php传递给函数。我的目标是得到最高的分数 CREATE FUNCTION highestscore (class CHAR(20),subjectid INT, termid AS INT,sessionid INT) RETURNS INT BEGIN SEL

我在mysql中创建了这个函数,但该函数不起作用。其动机是从包含学生在每门学科、一个班级、一个学期和一个学校课程中的分数的视图中获得最高分数。subjectid、termid、sessionid和类将从php传递给函数。我的目标是得到最高的分数

CREATE FUNCTION highestscore (class CHAR(20),subjectid INT, termid AS INT,sessionid INT) 
      RETURNS INT 
   BEGIN
      SELECT Max(total) AS hscore 
      FROM reportsheetsubjectsview 
      WHERE class=class AND subjectid=subjectid 
      AND termid=termid AND sessionid=sessionid
      RETURN hscore;
   END
已编辑的存储过程版本

创建定义器=root@localhost在subjectid INT中,在类VARCHAR10中,在termid INT中,在sessionid INT中,在sessionid INT中,在outhighesttotalscore INT中,过程得分最高 确定性 开始从class=class的scoreview中将Maxtotal选择为highesttotalscore 主语id=subjectid,termid=termid,sessionid=sessionid; 结束

将GROUPBY子句添加到select中

SELECT Max(total) AS hscore 
      FROM reportsheetsubjectsview 
      WHERE class=class AND subjectid=subjectid 
      AND termid=termid AND sessionid=sessionid GROUP BY class, subjectid, termid, sessionid

什么不起作用?你有错误吗?或者结果不正确?我已经用下面的mysql过程重写了上面的mysql函数。它现在正在输出,但计算值不正确。它将忽略参数化零件。它返回的是表中的最高分数,而不是基于参数。创建定义器=root@localhost程序最高分在subjectid INT、class VARCHAR10、termid INT、sessionid INT、OUT highesttotalscore INT中,从scoreview中选择Maxtotal到最高分TotalScore,其中class=class,subjectid=subjectid,termid=termid,sessionid=sessionid;endI已经用您给我的答案编辑了程序,但我仍然得到相同的结果。@AdelekeAdelani您可以编辑您的问题并添加一个示例,说明您的数据在表中的外观,以及您希望从所述示例数据中得到的结果吗?