[英]How to create Pagination , if there are some conditions(Where caluse) in your mysql Query?
我有这样的查询:
$pagenumber = get_page_number(); // I'll get the pagenumber by a method wich runs when user click's on page numbers , for example : 2 or 3 or whatevere user clicks.
//Now , I'll make A Limit caluse :
$limit = $pagenumber.",10"; // limit the page to show 10 result => example : LIMIT 2,10
$sql = "SELECT * From doctors LIMIT $limit";
--> after this , I show the result which is by my on way (echo a div for every result );
这是一个很酷的分页,效果很好。
但是问题是,当我的查询中存在WHERE时,mysql会感到困惑,并且我不知道该怎么办
考虑一下:
$sql = "SELECT * FROM doctors WHERE `firstname` LIKE '$firstname' LIMIT $limit";
因此,它不起作用:((
我知道问题在于“ WHERE”子句,因为当用户单击页码时,我的$ limit例如: 2,10,而我的查询将是:
$sql = "SELECT * FROM doctors Where firstname LIKE '$firstname' LIMIT 2,10";
这里有一个条件(WHERE名...)。mysql甚至如何知道从哪里开始搜索?
mysql如何知道“ LIMIT 2,10”的含义。
(如果有条件的话)将2放在我的桌子上的什么位置?
如果没有条件,则2表示记录号21(我对吗?),当然,如果offset为10; (LIMIT 2,10);
那正确吗?
但是,如果有A WHERE子句,该怎么办?
现在那个起点是什么?(2 ????)
如果您需要更具体的细节,请随时提问(我想我已经解释清楚了)谢谢
$pagesize = 10;
$start = ($page) * $pagesize; // assuming you're passing in 0 based pages, if they're 1 base, do a $page -1
$sql = "SELECT * FROM doctors Where firstname LIKE '$firstname' ORDER BY lastname LIMIT $start,$pagesize";
您需要对结果集进行排序,以使限制有意义。 另外,开始需要考虑页面大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.