Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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/2/sharepoint/4.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表的第n行开始获取m行_Php_Mysql_Database - Fatal编程技术网

Php 从动态MySql表的第n行开始获取m行

Php 从动态MySql表的第n行开始获取m行,php,mysql,database,Php,Mysql,Database,场景是列出用户和他的朋友按上传日期时间排序上传的照片。我有一张MySql表格照片,它是动态的,包含所有用户上传的照片 最初,我通过下面的查询得到10行数据。当我获得下10行时,用户将上传更多照片。那么,如何从我之前得到的行开始选择接下来的10行呢 select * from photo p where p.handle in (select handle from friends where user = '$handle') or p.handle='$handle' order by uld

场景是列出用户和他的朋友按上传日期时间排序上传的照片。我有一张MySql表格照片,它是动态的,包含所有用户上传的照片

最初,我通过下面的查询得到10行数据。当我获得下10行时,用户将上传更多照片。那么,如何从我之前得到的行开始选择接下来的10行呢

select * from photo p where p.handle in (select handle from friends where user = '$handle') or p.handle='$handle' order by uldatetime desc limit ".$start.", 10;
您的数据库中一定有一些自动递增的主键。假设您正在按相反的顺序获取记录,。假设您在开始显示结果时有50条记录

你的记录从50到41 意味着又插入了5条记录,所以你的最后一个Id从50增加到55 现在,不再显示最后20条记录,取回主键<41的最后10条记录,因此它将为您提供40到31条记录,而与同时插入的记录无关 因此,您的查询将更新为

选择*来自照片p,其中p.handle在选择handle from friends中,其中user='$handle'或p.handle='$handle'和photo。[照片表的primarykey]<[到目前为止显示的最后一张照片id]按uldatetime描述限制0,10排序


将[last photo id displayed to now]和[primarykey of photo table]替换为相应的变量和字段。

@b0s3 Yeah,即使我这样做了。有机会获得我已经得到的行。这不是通过数据库引擎可以解决的问题。为此,您必须在会话中保持跟踪,并根据您选择的ID记住最后一张照片。然后,您可以添加另一个WHERE子句,仅选择ID更高的照片。@arkascha谢谢!嗯,通过这种方法,我第一次得到数据,最后一张照片的id是999999。你能给我一个更好的建议吗?第二次发送last photo id=999999-10,然后第三次发送last photo id=999999-20,依此类推