power-girl0-0

[ PHP & MySQL ] SELECT 본문

언어/PHP

[ PHP & MySQL ] SELECT

power-girl0-0 2021. 3. 29. 00:02
728x90

생활코딩 PHP & MySQL을 참고하여 공부하였습니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.

( 출처 :  https://opentutorials.org/course/743inf.run/pBzy opentutorials.org/course/3167)


데이터베이스에서 값을 가져올 때 사용하는 것은 select이다.

이를 이용해서 테이블의 내용을 가져와보자.

<?php
    $conn = mysqli_connect(
    'localhost',
    'root',
    'db 비밀번호',
    'opentutorials');
    $sql = "SELECT * FROM topic";
    $result = mysqli_query($conn, $sql);
    var_dump($result->num_rows);
?>

마지막 줄과 같이, var_dum($result->num_rows);의 명령어를 입력하면 데이터베이스 테이블에 값이 몇개 들어있는지 출력해준다.

따라서, 아래 그림과 같이 4를 출력하고 있다.


php에서 mysqli_query통해, 가져온 값들을 출력하려면 php에 사용가능하도록 변환해야 한다.

이 때, 사용하는 함수 중 배열로 가져와주는 것은 mysqli_fetch_array( ) 함수이다.

 

해당 함수를 이용하여 값을 출력해보자.

데이터 베이스 안에 들은 값들이 배열로 저장되는 것을 확인할 수 있다.


배열을 이용하여, 값을 지정해서 가져올 수도 있다.

<?php
  $conn = mysqli_connect(
    'localhost',
    'root',
    'db 비밀번호',
    'opentutorials');
  $sql = "SELECT * FROM topic WHERE id = 21";
  $result = mysqli_query($conn, $sql);
  $row = mysqli_fetch_array($result);
  echo '<h1>'.$row['title'].'</h1>';
  echo $row['description'];
?>

where절에서 id값이 21인 조건을 입력해서, 해당 줄에 해당되는 값을 가져올 수 있다.

실행결과는 아래와 같다.


그럼 출력해주는 구문을 여러번 작성하면, 어떤 결과값이 나올까??

3번정도만 반복한 다음 실행해보니, 다음행의 값들을 뽑아주고 있다.

 

그러면 반복문을 사용한다면, 모든 값을 쉽게 뽑아낼 수 있지 않을까??

그렇다 ㅎㅎ !! 

 

아래와 같이 작성해줄 수 있다.

<?php
    $conn = mysqli_connect(
    'localhost',
    'root',
    'db 비밀번호',
    'opentutorials');
    $sql = "SELECT * FROM topic";
    $result = mysqli_query($conn, $sql);

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

php에서는 null값을 false로 반환하기 때문에, $row에 값이 없으면 false가 출력된다.

이로 인해, 테이블에 있던 값들을 전부 출력할 수 있는 것이다.

 

728x90

'언어 > PHP' 카테고리의 다른 글

[ PHP & MySQL ] PHP & MySQL 보안  (0) 2021.03.29
[ PHP & MySQL ] 글 읽기  (0) 2021.03.29
[ PHP & MySQL ] 글 생성  (0) 2021.03.28
[ PHP & MySQL ] PHP와 MySQL 연동하기  (0) 2021.03.28
[ PHP & MySQL ] web과 mysql 환경 구축  (0) 2021.03.28
Comments