데이터베이스에서 가져온 데이터를 php에서 실행하고자 할 때, 
데이터베이스와 php는 서로 완전히 다른 기술이기 때문에 우리가 php라는 컴퓨터 언어를 통해서 그 데이터를 활용하기 위해서는 php 데이터 타입으로 전환하는 과정을 거쳐야 한다.

 

그 때 사용하는 api가 mysqli_fetch_... 들이다.

<!-- SELECT 문으로 하나의 행만 확인 -->
<?php
$conn = mysqli_connect('localhost','root','1111','mysqls');

$sql = "SELECT * FROM topic WHERE id=1";
$result = mysqli_query($conn, $sql);

$row = mysqli_fetch_array($result);
echo '<h1>'.$row['title'].'</h1>';
echo $row['description'];
?>

위 코드를 이해하기 위해 연관배열을 잠깐 언급하겠다.

 

 

현재 topic 테이블

$row = mysqli_fetch_array($result);
print_r($row);
echo $row[1]; 
echo $row['title']; 

mysqli_fetch_array($result) 는 result문이 가리키는 쿼리문의 결과를 하나씩 하나씩 배열로 리턴한다.

+) 더 이상 가져올 행이 없다면 NULL을 리턴한다.

 

따라서 $row 변수에는 php에 맞는 데이터 타입으로 전환된 배열이 들어가 있다.

 

실제 Array 배열을 출력

배열 = 키 값이 숫자, 연관배열 = 키 값이 문자

echo $row[1];  // MySQL =>데이터의 인덱스를 이용해서 데이터를 가져온다 : 배열
echo $row['title'];  // MySQL =>데이터의 컬럼의 이름을 이용해서 데이터를 가져온다 : 연관배열

 

 

우리는 해당 데이터의 배열의 인덱스를 하나하나 다 알 수 없기 때문에

연관배열 방법을 이용해서 원하는 데이터의 결과를 가져온 것이다.

echo '<h1>'.$row['title'].'</h1>';
echo $row['description'];

 

 

<!-- SELECT 문으로 모든 행 확인 -->
<?php
$conn = mysqli_connect('localhost','root','1111','mysqls');

$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);

while($row = mysqli_fetch_array($result)){
  echo '<h1>'.$row['title'].'</h1>';
  echo $row['description'];
}
?>

while문을 활용해서 모든 행의 결과를 불러올 수 있다.

 

결과화면


+ PHP while문

<?php while(A)
B
C
?>

// A에 있는 코드는 무조건 실행. 그 결과가 true라면 B와 C를 순차적 실행. 더 이상 실행시킬 코드가 없으면 다시 A로 돌아감. 결과가 NULL(flase)라면 while문 종료

 

'WEB > PHP' 카테고리의 다른 글

보안  (0) 2021.01.31
PHP와 MySQL 연동  (0) 2021.01.31
PHP & DATABASE  (0) 2021.01.30
form과 GET, POST  (0) 2021.01.29
PHP 문법 기초  (0) 2021.01.28

+ Recent posts