Notice
Recent Posts
Recent Comments
Tags
- TempData
- Mac Oracle
- JavaScript
- javascript 바코드 생성
- 하드 윈도우 복사
- XSS PHP
- 하드 마이그레이션
- 원격ftp
- ViewData
- 강제이동
- SSD 복사
- php 캐쉬제거
- ViewBag
- simpe ftp
- 404에러페이지
- 바코드 생성하기
- 맥 오라클설치
- asp.net core Select
- asp ftp
- asp.net core swagger
- javascript redirection
- django 엑셀불러오기
- asp.net Select
- 말줄임표시
- 타임피커
- jquery 바코드생성
- asp.net dropdownlist
- XSS방어
- ASP.Net Core 404
- swagger 500 error
웹개발자의 기지개
[PHP] 랜덤하게 쿼리 목록을 가져오기 - 페이징, 조건문 유지 본문
다량의 아이템이 있는 쿼리문에서 페이징기능과 조건문 기능을 유지하면서 랜덤하게 정렬하여 가져 오고 싶을때
일단 페이지 1페이지 (start=0) 에서 랜덤한 동일한 시드값을 세션을 구워서, 정렬로 이용해서 쓰는 방식으로 구현할 수 있다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?
// 1. 세션이 시작되지 않았다면 시작
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
// 2. 세션에 랜덤 시드 값이 없거나, 사용자가 '처음부터 다시 보기'를 원할 때 시드 생성
// (예: 첫 페이지(start=0)로 올 때 새로운 랜덤 순서를 부여하고 싶다면 조건 추가 가능)
if (!isset($_SESSION['rand_seed']) || $start == 0) {
$_SESSION['rand_seed'] = rand(1, 100000);
}
$seed = $_SESSION['rand_seed'];
$page = ($_GET[page])? $_GET[page] : $_POST[page];
$keyword = ($_GET[keyword])? $_GET[keyword] : $_POST[keyword];
$cate1 = ($_GET[cate1])? $_GET[cate1] : $_POST[cate1];
$show_page = 20;
$block_page = 10;
$tQ = "select count(*) from member $keyGap";
$tresult = mysqli_query($conn,$tQ) or die("Selection Error!");
$trow = mysqli_fetch_row($tresult);
$total = $trow[0];
if(!$page) $page = 1;
$start = ($page-1)*$show_page;
$total_page = (int)(($total-1)/$show_page)+1;
$query = "select * from member $keyGap order by RAND($seed) limit $start,$show_page";
?>
|
cs |
if (!isset($_SESSION['rand_seed']) || $start == 0) {
$_SESSION['rand_seed'] = rand(1, 100000);
}
$seed = $_SESSION['rand_seed'];
select * from member $keyGap order by RAND($seed) limit $start,$show_page
'PHP' 카테고리의 다른 글
| [PHP] 긴급 보안 취약점 관련 작업하기 - 261022 일자 (0) | 2026.10.22 |
|---|---|
| [PHP] 초간단 랜덤 숫자 얻기 (0) | 2026.07.20 |
| [PHP] 체크박스에서 배열로 처리하기 (특정 문자열 체크 여부) (0) | 2026.06.15 |
| [PHP] PHP7 에서 PHP8 마이그레이션할때 주의할 점 (0) | 2026.03.20 |
| [PHP] phpMyAdmin 에서 포트설정 (0) | 2026.03.14 |
Comments
