Normaltic 모의해킹 취업반 스터디 8기 - 2주차 Mini Mission

containerxox·2025년 4월 22일
post-thumbnail

✅ Mini Mission

학생 이름과 점수가 들어가 있는 DB 만들기
GET 방식으로 URL에 학생 이름을 넣으면 그 학생의 점수가 출력되는 페이지 만들기



① 데이터베이스 생성

데이터베이스를 새로 생성하지 않고
기존의 test 데이터베이스 이용함!

 

② 테이블 생성

‣ 기존의 test 데이터베이스에 score_table 테이블 생성
‣ 컬럼 수를 3개로 설정(idx, student_name, score)

 

③ 테이블 구조 설계

  • idxstudent_namescore라는 컬럼 생성!
  • idx 컬럼은 PRIMARY KEY로 설정하고 AUTO INCREMENT설정

 

③ 데이터 삽입

INSERT INTO score_table VALUES (NULL,'kaia','85')
↳ idx는 auto increment에 의해 1씩 증가하니까 NULL로 입력
↳ student_name은 'kaia'로 입력
↳ score는 '85'로 입력

같은 방법으로 하나의 레코드 더 생성!

 

④ WAS와 DB 연결 및 쿼리 실행

▶ WAS와 DB 연결

( 4-1 ) | db_miniMission.php 생성 & DB Server 접속 성공 여부 확인

➡️ DB Server에 접속 성공!

db_miniMission.php 코드 내용 ⬇️

<?php
      define('DB_SERVER','localhost');
      define('DB_USERNAME','admin');
      define('DB_PASSWORD','student1234');
      define('DB_NAME', 'test');

      $db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

      if($db_conn){
              echo "DB connect OK";
      }else{
              echo "DB connect Fail";
      }
?>



( 4-2 ) | GET방식 사용하지 않고 학생이름과 점수 출력해보기

db_miniMission.php 코드 내용 ⬇️

<?php
        define('DB_SERVER','localhost');
        define('DB_USERNAME','admin');
        define('DB_PASSWORD','student1234');
        define('DB_NAME', 'test');

        $db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

        $sql = "select * from score_table";

        $result = mysqli_query($db_conn, $sql);

        $row = mysqli_fetch_array($result);

        echo $row['student_name']."의 점수: ".$row['score'];
?>



( 4-3 ) | GET방식 사용하여 학생이름과 점수 출력해보기


db_miniMission.php 코드 내용 ⬇️

<?php
        define('DB_SERVER','localhost');
        define('DB_USERNAME','admin');
        define('DB_PASSWORD','student1234');
        define('DB_NAME', 'test');

        $db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

        $name = $_GET['name'];

        $sql = "select * from score_table";

        $result = mysqli_query($db_conn, $sql);

        $find_result = false;

        #해당 student_name을 가진 row를 찾기 위해 while문을 통해 반복
        #테이블의 모든 row를 읽어서 name파라미터와 일치한 student_name 값을 찾는다!
        while($row=mysqli_fetch_array($result)){
                if($row['student_name']==$name){
                        echo $row['student_name']."의 점수: ".$row['score'];
                        $find_result = true;
                        break;
                }
        }

        if($find_result == false)
        {
                echo $name . "은 존재하지 않습니다.";
        }

?>

0개의 댓글