개발 꿀팁/PHP

php+mysql 구현 페이지: 이전 페이지, 다음 페이지

Jammie 2022. 7. 13. 14:43
반응형

mysql에서 데이터를 페이지별로 표시하는 문구는 limit 5,1이다.5는 검색 시작 위치, 1은 1페이지 표시

따라서 php에서 이전 페이지를 구현하려면 다음 페이지에 데이터 page를 limit에 전송하면 페이지 분할이 가능하다.

세 단계로 이해할 수 있다.

1) 데이터베이스에 접속하여 전면에서 데이터를 표시한다.

2) php에 phage(페이지 번호 값)를 전송하고, 여기서도 해당 범위 내의 페이지 번호를 판단한다: 1 이상 1 이하, 전체 페이지 이하.세다

3) php는 페이지 번호를 획득하고, 판단을 내리고, 해당-+를 조작하여 limit 값을 변경한다.


ps:데이터는 이미 데이터베이스에 구축돼 있는데 여기서 php는 연결만 한다.


먼저 데이터베이스의 정보를 프런트 엔드에 표시하는 방법을 알아야 합니다.

php 파일:

//데이터베이스 연결:
$link = mysqli_connect("localhost","root","123456","test") or die ("오류: 데이터베이스에 연결할 수 없음");   //서버, 사용자 이름, 암호, 라이브러리 이름
mysqli_query($link,"set names 'utf8'"); //출력의 인코딩 방식, 이 구절은 반드시 있어야 한다。
 
//연결표:
$sql = "SELECT * FROM wordspace WHERE sa_id IS NOT NULL";   //mysql 문의문
$sqlcount = mysqli_query($link,$sql) or die ("쿼리 실패");  //출력하기.
$info = mysqli_fetch_ array($sqlcount);
while($info){
	$result[ ] = $info;  //값을 배열로 전송하다
}
 
mysqli_free_result($info);  //조회가 끝나면 테이블을 릴리스합니다
mysqli_close($link);  //데이터베이스 닫기

방금 취득한 데이터베이스의 배열을 프런트 엔드에 표시합니다

<table border="1">
	<tr>
		<td>id</td>
		<td>Price</td>
		<td>customer</td>
	</tr>
<!---php로 데이터 보이기-->
	<?php foreach($result as $val)   {?>
	<tr>
		<td><?php echo $val['id'];?></td>
		<td><?php echo $val[Price'];?></td>
		<td><?php echo $val['customer'];?></td>
	</tr>
	<?php  }  ?>
</table>

표의 데이터를 나타낸 후, 그 위에 페이지 나누기를 실현한다.

여기에 한 페이지를 더하고, 다음 페이지를 연결하며, 여기서 판단을 해야 한다.전송된 값은 다음과 같습니다

<!--첫 페이지와 이전 페이지의 조건 보이기-->
<?php if($page > 1)  {?>        
	<a href="?page=1">메인 화면</a>
	<a href="?page=<?php echo $prevpage;">이전 페이지</a>
<?php  }  ?>
 
<!--다음 페이지와 마지막 페이지 조건 보이기-->
<?php if($page < $ numpages)  {?>
	<a href="?page=<?php echo $nextpage;?">다음 페이지</a>
	<a href="?page=<?php echo $numpages;?>뒷장
<?php  }  ?>

php에서 데이터베이스에 접속하는 언어를 변경하려면:

//총 레코드 수 가져오기:
$sqls  = "SELECT COUNT(*)  as totalFROM wordspace where sa_id  IS NOT NULL";
$sqlcount = mysqli_query($link,$sqls) od die("쿼리 실패");
$pagecount  = mysqli_fetch_array($sqlcount);
$pagecount = $pagecount['total'];
mysqli_free_result($sqlcount);   //조회 완료 후 공간 확보
//페이지 수를 받아서, 요구에 부합하는지 여부를 판단하다
$page = intval($_GET['page']);
if($page <=0) {$page= 1;}
elseif($page > $pagecount){ $page = $pagecount; }
 
//페이지당 표시할 페이지 수 정의:
$pageshow = 5;
$pagesize = ($page-1) * $pageshow;
//총 페이지 수를 계산하다:
$numpages = ceil($pagecount/$pageshow);   //위쪽으로 가다듬다;
 
//표시할 데이터베이스 연결
$sql = "SELECT * FROM wordcpace where IS NOT NULL limit $pagesize,$pageshow";
$sqlinfo = mysqli_query($sql);
$divide = mysqli_fetch_array($sqlinfo)or die("페이징 조회 실패");
while($divide){
	$result[ ] = $divide;
}
$prevpage = $page - 1;
$nextpage = $page + 1;
mysqli_free_result($sqlinfo);
musqli_close($link);  //마지막으로 데이터베이스를 종료합니다
반응형