跳不出while循环
我想写个分页代码,每个页面显示6种食物,但是好像跳不出循环,不管我进哪一页都是一样的
代码如下:
PHP code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
$each_page=6;
$diff=$rows % 6;
$page_org=$rows / 6;
$count=1;
if($diff>0)
{
$page = floor($page_org+1);
}
else
{
$page = floor($page_org);
}
$page_count_start=0;
$page_count_end=0;
$stopwatch=0;
if(!isset($_GET['page']) || (isset($_GET['page'])&&$_GET['page'])==1)
{
//echo "hello";
$page_num=1;
$page_count_end=$page_count_start + 6;
}
else
{
//echo "hello";
$page_num=$_GET['page'];
$page_count_start=$page_num + ($page_num-1) * 5;
$page_count_end=$page_count_start + 6;
}
$query="SELECT * FROM DISH WHERE dish_id IN (SELECT dish_id FROM CATEGORY_MENU WHERE cat_id=$cat_id)";
$result=queryMysql($query);
while($get_details=mysql_fetch_array($result))
{
$stopwatch++;
if($stopwatch
------解决方案--------------------
既然你已经计算出起始的偏移,那为什么不用 limit 子句呢
$query .= " limit $page_count_start,6";
$result=queryMysql($query);
同时删除循环中与 $stopwatch 相关的代码
------解决方案--------------------楼主可能还不知道mysql有limit子句
------解决方案--------------------在continue;前echo一下,如果看不到echo就是你的判断条件有问题。
另外分页MySQL是使用limit实现的,而不是循环。
------解决方案--------------------我不是做php的,所以我说的,你选着看吧。
做分页,我的做法是先用count(*)查询一下一共有多少项是要查询的,然后除以每页要显示的条数(item),得到共有多少页(page),然后接收传入的页码数(inpage),如果inpage小于等于0或者为空,则将inpage改为1,如果大于page,则改inpage = page。
设置变量StartPage = (inpage-1)*item,
然后写sql文
select * from tab_name where 条件 limit StartPage,item;
这样就能根据传进来的参数查询了。
在页面,上一页直接用当前页-1,下一页直接用当前页+1,做了上面的处理后,不会出现超出范围的情况了。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn