inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

PHP 7+ 프로그래밍

57 - 게시글 (Post; Index) (2)

readmore 클릭시 쿼리내용 받아오는게 이해가 안되요

해결된 질문

497

언젠가는프리

작성한 질문수 7

0

ajax 방식으로 fetch 통해 page값을 넘겨

Domparser 사용해서 html을 새로 그린다는건 알겠는데 get방법을 사용한 이유가 있나요?

왜 li태그 안에내용만 쿼리내용이 업데이트되어 그려질수 있는지 모르겠는데 조금 더 자세한 설명 없나요?

page값이 변경된 새로운 쿼리를 실행시켜 실행된 값들을 저장하는 코드가 어느부분인걸가요?

php

답변 1

1

정상우

안녕하세요. 정상우입니다 :D

Domparser 사용해서 html을 새로 그린다는건 알겠는데 get방법을 사용한 이유가 있나요?

중요하지 않은 정보의 경우 GET 으로 처리하는 것이 일반적이고, '읽기' 또는 '정보 요청' 의 경우 GET 으로 처리합니다. 검색어에 대해서도 GET 으로 처리합니다. 이는 제 강의 뿐만 아니라 다양한 서비스의 사례에서도 확인하실 수 있습니다. 블로그나 검색도 마찬가지입니다.

page값이 변경된 새로운 쿼리를 실행시켜 실행된 값들을 저장하는 코드가 어느부분인걸가요?

page 쿼리 파라매터를 받아오는 부분은 index.php 의 초반부 코드인 다음과 같은 부분입니다. page 를 받아오지 못하면, 즉 쿼리 파라매터가 주어지지 않은 경우 $page ?: 0 에 의해 거짓으로 판단되어 0 으로 처리되며 SELECT * FROM posts ORDER BY id DESC LIMIT 3 OFFSET 0 가 최종적으로 처리됩니다.

$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
$page = $page ?: 0;

$stmt = mysqli_prepare($GLOBALS['DB_CONNECTION'], 'SELECT * FROM posts ORDER BY id DESC LIMIT 3 OFFSET ?');
$page = $page * 3;

mysqli_stmt_bind_param($stmt, 'i', $page);

그러나 /?page=1 과 같이 주어진 경우 $page ?: 0 가 참으로 처리되므로 $page 의 초기 값으로 1 이 할당되고, 그 이후 $page * 3 에 의해 3 이 할당됩니다. 따라서 결론적으로 SELECT * FROM posts ORDER BY id DESC LIMIT 3 OFFSET 3 로 쿼리가 실행됩니다. 쿼리 파라매터에 따라 반환하는 결과 페이지가 달라지는 것은 이 때문입니다.

53강 레이아웃에서 css git 링크 관련 질문입니다.

0

39

2

[섹션 5]레포지토리 소스파일 오류 위치, 수정 제안

0

181

1

add configuratio.. 자체에

0

269

2

터미널에 글이 안써집니다.

0

637

1

일반적으로 쓰이지 않는 폰트 부분

0

466

1

$_GET과 $_POST를 구별하여야한다고 하는데 이건 왜 $_GET입니까 콜백이라서 그런가요? 왜콜백은 그래도 되나요?

0

476

1

xdebug 설치가 안됩니다.

0

401

1

xdebug 설치 확인 페이지가 안열립니다

0

360

1

if ~ elseif ~ else 문법 표준적인 코딩 방법에 대한 질문입니다.

1

525

1

mysqli_stmt_close($stmt) 관련 질문드립니다.

0

320

1

DB_CONNECTION 부분 질문

0

269

1

FILTER_VALIDATE FILTER_SANITIZE 차이를 모르겠습니다.

0

296

1

결과 ...

0

246

1

random_bytes

0

321

1

preg_replace_callback 질문드립니다.

0

438

1

호스팅에 php 코드 업로드하면 hash 로직이 보이진 않을까요?

0

266

1

버퍼링 궁금한 점이 있습니다.

0

288

1

restore_include_path 오류

0

317

1

php 에러발생..

0

3759

3

터미널로 php 실행시 document root 지정

0

246

1

posts가 null이라고 나옵니다.

0

214

2

rand() vs random_int() 차이점?

0

523

1

php 8 로 하시는 분들을 위한 ini 팁

1

517

1

xdebug 뭔짓을해도 안됩니다

0

223

1