跳不出while循环,该怎么解决
跳不出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,做了上面的处理后,不会出现超出范围的情况了。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Count 함수는 지정된 범위 내의 숫자 수를 계산하는 데 사용됩니다. 텍스트, 논리값 및 Null 값은 무시하지만 빈 셀의 개수는 계산됩니다. Count 함수는 실제 숫자가 포함된 셀의 개수만 계산합니다. CountA 함수는 지정된 범위에서 비어 있지 않은 셀의 수를 계산하는 데 사용됩니다. 실제 숫자가 포함된 셀의 개수뿐만 아니라 텍스트, 논리값 및 수식이 포함된 비어 있지 않은 셀의 개수도 계산됩니다.

Vue 프로젝트에서 데이터 페이징 및 디스플레이 최적화 구현 Vue 프로젝트에서 페이지에 많은 양의 데이터를 표시해야 하는 경우 일반적으로 사용자 경험을 개선하기 위해 데이터 페이징 및 디스플레이 최적화를 수행해야 합니다. 데이터 페이징 및 디스플레이 최적화를 구현하고 구체적인 코드 예제를 제공합니다. 1. 데이터 페이징(Data paging) 데이터 페이징이란 대량의 데이터를 일정한 규칙에 따라 여러 페이지로 나누어 한 페이지에 표시하는 것을 말합니다. 다음 단계를 사용하여 Vue 프로젝트에서 데이터 페이징을 구현할 수 있습니다. 먼저 데이터 소스를 정의합니다.

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

소개 어제 한 골퍼가 나에게 @SpringBootApplication 주석이 무엇을 의미하는지, SpringBoot가 어떻게 작동하는지 설명해 줄 수 있는지 물었습니다. 그래서 저는 그에게 이 주석의 소스 코드와 Run(SpringApplication 클래스의) 메서드를 살펴보라고 안내했습니다. , 그는 즉시 그것을 이해했습니다. 말하지 마세요. 소스 코드를 보는 과정이 정말 흥미롭습니다. 흥미로운 점을 발견했습니다. publicConfigurableApplicationContextrun(String...args){StopWatchstopWatch=newStopWatch(

이 기사에서는 일상적인 개발에서 통계 데이터의 필요성을 매우 쉽게 접할 수 있는 사용법의 차이점을 소개합니다. 다음으로 이들 간의 차이점을 살펴보겠습니다. 그리고 함정이 있는지 여부.

PHP에서 count 함수의 사용법은 다음과 같습니다: [count(array,mode);], 여기서 매개변수 array는 계산할 배열을 지정하고, 매개변수 mode는 함수의 모드를 지정합니다.

재현된 테스트 데이터베이스는 다음과 같습니다: CREATETABLE`test_distinct`(`id`int(11)NOTNULLAUTO_INCREMENT,`a`varchar(50)CHARACTERSETutf8DEFAULTNULL,`b`varchar(50)CHARACTERSETutf8DEFAULTNULL,PRIMARYKEY(`id`))ENGINE= InnoDBAUTO_INCREMENT =1DEFAULTCHARSET=latin1;테이블의 테스트 데이터는 다음과 같습니다. 이제 이 세 열의 중복 제거된 열을 계산해야 합니다.

PHP는 특히 배열 작업에서 강력한 개발 기능을 갖춘 매우 인기 있는 서버측 프로그래밍 언어입니다. PHP의 배열은 여러 데이터 항목을 저장하고 관리하는 데 널리 사용됩니다. 배열을 조작할 때 배열의 요소 수를 계산해야 하는 경우가 종종 있습니다. 이는 PHP의 count() 함수를 사용하여 수행할 수 있습니다. count() 함수는 배열 요소의 개수를 세는 PHP 내장 함수입니다. 이 함수를 사용할 때 배열을 함수의 매개변수로 전달하기만 하면 됩니다.
