首頁 > 後端開發 > php教程 > 跳不出while循环,该怎么解决

跳不出while循环,该怎么解决

WBOY
發布: 2016-06-13 13:35:00
原創
1177 人瀏覽過

跳不出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,做了上面的处理后,不会出现超出范围的情况了。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板