Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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_Stored Procedures_Pagination - Fatal编程技术网

Php 使用mysql存储过程创建分页

Php 使用mysql存储过程创建分页,php,mysql,stored-procedures,pagination,Php,Mysql,Stored Procedures,Pagination,我正在尝试使用存储过程创建分页 当我尝试将1作为参数传递时,它会得到记录0到14。 当我将2作为参数传递时,它给出0-30, 当我通过2级考试时,我想要15-30分 create PROCEDURE abc(pageno INT) BEGIN DECLARE page_no int; DECLARE rstarts int; DECLARE rends int; DECLARE userPage int; set @userPage = pageno; PREPARE STMT FRO

我正在尝试使用存储过程创建分页

当我尝试将1作为参数传递时,它会得到记录0到14。 当我将2作为参数传递时,它给出0-30, 当我通过2级考试时,我想要15-30分

create PROCEDURE abc(pageno INT)
BEGIN  
DECLARE page_no int;
DECLARE rstarts int;
DECLARE rends int; 
DECLARE userPage int;

set @userPage = pageno;

PREPARE STMT FROM 
" SELECT * FROM primaryinfo LIMIT ?,? "; 
SET @START =(@userPage - 1) * 15; 
SET @LIMIT = @userPage * 15; 
EXECUTE STMT USING @START, @LIMIT;
DEALLOCATE PREPARE STMT;
END
或者是否有其他有效的解决方案。。
提前感谢您

无需声明的分页:

create PROCEDURE test(
  IN first_rec integer,
  IN rec_count integer
)
BEGIN
  -- return --
  SET @rownum=0;
  SELECT * FROM (
    SELECT
    user.*, @rownum:=@rownum+1 AS rn FROM user
  ) t WHERE rn>=first_rec and rn<first_rec+rec_count;
END;;

试着调试@start,看看当你传递2HPMyAdmin时它有什么功能可以调试它…:-通过调试我的意思是看它有什么我试着用一些工具调试。。。开始保持正确的值15,限制保持30。。。但返回的结果仍然是30行……我猜它不支持限制10,20。它只是把它作为极限0,20.我也用硬编码的方式试过了。。