我有这样的查询:
$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";
所以,它不起作用:((
我知道问题是"在哪里"子句,因为当用户点击页码时,我的 $ limit 将是例如: 2,10 我的查询将是:
$sql = "SELECT * FROM doctors Where firstname LIKE '$firstname' LIMIT 2,10";
这里有一个条件(WHERE firstname ....) mysql甚至知道从哪里开始搜索?(从起点开始,我的意思是" LIMIT x,y" x是起点)
mysql如何知道我的意思" LIMIT 2,10"。
在我的表格中放置 2 的位置?(当有条件时);
如果没有条件, 2 表示记录号21(我是对吗?),当然如果偏移是10; (限2,10);
是吗?
但是,如果有一个WH WHERE子句,??????
那是什么起点?(2 ????)
如果您想了解更具体的细节,请随时询问(我想我解释过) 感谢
答案 0 :(得分:0)
$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";
您需要订购结果集才能使限制有意义。此外,开始需要考虑页面大小。