2017/09/12 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(3) - 목록 읽어오기 file()에서 목록을 불러오는 것까지 수행했다.
이제 목록의 첫 번째 값을 넣고 쿼리를 돌리고, 결과를 출력하고, 다시 두 번째 값을 넣고 쿼리를 돌리고... 를 반복하면 된다.
이때 반복문 while(){} 이 사용된다.
while(){} 은 괄호() 안의 부분이 TRUE인 경우 중괄호{} 안의 내용을 반복 실행하게 된다.
그러므로 반복실행시 괄호 안의 조건이 언젠가 FALSE가 되어야 반복을 멈출 수 있다.
가장 흔히 사용되는 것이 괄호 안에 변수를 넣고, 해당 변수가 중괄호 안에서 하나씩 증가하도록 하는 것이다.
다음의 예를 보자.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php $list = file("list.txt"); $id = $list[0]; $id = rtrim($id, "\r\n"); $i = 0; while($i<5){ echo $i; $i = $i + 1; } ?> </body> </html>
$i 를 0으로 주고, 반복할 때마다 1씩 증가하도록 해 주었다.
$i 가 5가 되는 순간 반복문은 FALSE가 되어 반복을 중지할 것이다.
결과를 보자.
$i 의 값을 4까지 출력하고 반복문이 멈춘 것을 볼 수 있다.
우리는 자료가 20개이므로 $i < 20 으로 주면 0부터 19까지 20개의 자료를 불러올 수 있겠다.
예를 들면 다음과 같다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php $list = file("list.txt"); $id = $list[0]; $id = rtrim($id, "\r\n"); $i = 0; while($i<20){ $log = $list[$i]; echo $log; echo "</br>"; $i = $i + 1; } ?> </body> </html>
반복문 안쪽을 보면 $log 라는 변수에 $list[0] 부터 $list[19] 까지의 값이 담기도록 세팅하였다.
</br> 은 html 에서 강제개행을 의미하는 태그로, 자료를 알아보기 쉽게 하기 위해 추가하였다.
실행하면 다음과 같다.
list.txt 의 내용을 그대로 가져온 것으로 보이지만
실은 첫 줄에 $list[0] 을 출력하고 </br> 로 강제개행하고, 다시 처음으로 돌아가 이번엔 $list[1]을 출력하고... 를 반복한 결과이다.
이제 이전에 테스트 삼아 적은 $id = $list[0] 은 현재의 $log = $list[$i] 에 해당하므로 그 행은 지우고,
$id = rtrim($id, "\r\n") 역시 반복문 안쪽으로 옮겨주자.
$list[0] 을 만든 후 공백을 제거하고, 다시 $list[1]을 만든 후 공백을 제거하도록 해 주면 되겠다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php $list = file("list.txt"); $i = 0; while($i<20){ $log = $list[$i]; $log = rtrim($log, "\r\n"); echo $log; echo "</br>"; $i = $i + 1; } ?> </body> </html>
마지막으로, 반복문의 조건으로 $i<20 과 같이 조건을 주는 것은 자료가 길어지면 번거롭다.
20개 대신 'list.txt 에 있는 자료의 개수만큼' 이라고 지정해 주면 좋을 것이다.
count() 함수가 이와 같은 역할을 하므로 다음과 같이 적자. 결과에는 변함이 없다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php $list = file("list.txt"); $i = 0; while($i<count($list)){ $log = $list[$i]; $log = rtrim($log, "\r\n"); echo $log; echo "</br>"; $i = $i + 1; } ?> </body> </html>
본격적으로 쿼리를 입력할 준비가 되었다. 다음 포스트에서 이어가 보자.
'PHP' 카테고리의 다른 글
[PHP] 회원들의 재구매율 알아보기(3) - 날짜 계산하기 strtotime() (0) | 2017.09.26 |
---|---|
[PHP] 회원들의 재구매율 알아보기(2) - 두 배열 비교하기 in_array() (0) | 2017.09.25 |
[PHP] 회원들의 재구매율 알아보기(1) - MySQL 컬럼(열)을 배열로 만들기 (0) | 2017.09.24 |
[PHP] mysqli_fetch_row, assoc, array 의 차이 (4) | 2017.09.20 |
[PHP] DB에서 특정 행들만 가져오기(8) - DB 에서 열 이름 가져오기 (0) | 2017.09.19 |
[PHP] DB에서 특정 행들만 가져오기(7) - DB에서 가져온 정보 출력하기 mysqli_fetch_row() (0) | 2017.09.18 |
[PHP] DB에서 특정 행들만 가져오기(6) - 쿼리 작성하기 mysqli_query() (0) | 2017.09.17 |
[PHP] DB에서 특정 행들만 가져오기(5) - 변수를 바꾸어 문자열 출력 sprintf() (0) | 2017.09.14 |
[PHP] DB에서 특정 행들만 가져오기(3) - 목록 읽어오기 file() (0) | 2017.09.12 |
[PHP] DB에서 특정 행들만 가져오기(2) - PHP 로 MySQL DB 제어하기 (0) | 2017.09.11 |
댓글