跳不出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 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제









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

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

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

소개 어제 한 골퍼가 나에게 @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;테이블의 테스트 데이터는 다음과 같습니다. 이제 이 세 열의 중복 제거된 열을 계산해야 합니다.

참고 1. Count는 스트림의 전체 요소 수를 계산할 수 있는 터미널 작업입니다. 반환 값은 long 유형입니다. 2. count()는 스트림의 요소 수를 반환합니다. 이는 귀납의 특별한 경우입니다(귀납 연산은 일련의 입력 요소를 취하고 결합 연산을 반복적으로 적용하여 이를 요약 결과로 결합합니다). 이는 최종 작업이므로 결과와 부작용이 있을 수 있습니다. 터미널 작업이 수행된 후에는 파이프가 소모된 것으로 간주되어 재사용할 수 없습니다. 예 // 목록에 a로 시작하는 문자열이 있는지 확인하고 첫 번째 문자열과 일치합니다. 즉, truebooleananyStartsWithA=stringCollection.stream().anyMatch((s를 반환합니다.
