PHP
[PHP] DB에서 특정 행들만 가져오기(5) - 변수를 바꾸어 문자열 출력 sprintf()
LightBlogger
2017. 9. 14. 23:00
SELECT * FROM user_data WHERE log_num=□
이번엔 □ 안의 내용을 우리가 저장한 list.txt 의 것으로 바꾸어 출력하는 방법을 알아보자.
sprintf() 라는 함수가 사용된다.
이전 코드의 echo $log; 부분을 다음과 같이 바꾸어 적자.
echo sprintf("숫자는 %d", $i);
<!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 sprintf("숫자는 %d", $i); echo "</br>"; $i = $i + 1; } ?> </body> </html>
"숫자는" 다음에 적힌 %d 부분을, 다음에 기재한 $i 변수로 대체하라는 의미이다.
%d는 대체될 내용이 10진법에 의한 정수라는 것을 의미한다. 문자로 대체하고 싶다면 %s 를 사용해야 한다.
더 자세한 정보는 여기를 참조하자.
실행 결과는 다음과 같다.
$i 가 0이므로 "숫자는" 뒤의 %d 를 0으로 치환하고 결과를 출력,
다시 돌아 이번에는 $i 가 1이므로 %d를 1로 치환하고 결과를 출력... 과 같이 20번 실행되었다.
list.txt 에 있는 숫자들이 $log 에 하나씩 저장되도록 하였으므로, $i 대신 $log를 쓰면 list.txt 의 숫자들을 출력할 것이다.
<!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 sprintf("숫자는 %d", $log); echo "</br>"; $i = $i + 1; } ?> </body> </html>
list.txt 에서 가져온 숫자들을 포함하여 문자열이 잘 반환되는 것을 볼 수 있다.
이제 드디어 쿼리를 다음과 같이 적으면 되겠다.
sprintf("SELECT * FROM user_data WHERE log_num='%d'", $log);
<!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 sprintf("SELECT * FROM user_data WHERE log_num='%d'", $log); echo "</br>"; $i = $i + 1; } ?> </body> </html>
결과는 다음과 같다.
입력할 쿼리들이 완성되었다.
다음 포스트에서 실제로 DB에 질의해 보자.
반응형