본문 바로가기
PHP

[PHP] DB에서 특정 행들만 가져오기(5) - 변수를 바꾸어 문자열 출력 sprintf()

by LightBlogger 2017. 9. 14.

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에 질의해 보자.

반응형

댓글