4. [2주차]-2 학생, 점수 페이지 만들기

* 과제

1. 복습(database, SQL)
2. 미니 미션

 - 학생, 점수 데이터베이스 생성

 - GET 방식으로 학생의 이름이 입력되면 그에 맞는 점수를 출력

   - ex) "doldol 학생의 점수는 80입니다."

3. 로그인 페이지 (DB 연동

4. 회원가입 페이지 만들기 (기능 구현)

 

+ 추가 미션 (시간이 남으면)

1. 마이 페이지 기능


 

2. 미니 미션

 - 학생, 점수 데이터베이스 생성

 - GET 방식으로 학생의 이름이 입력되면 그에 맞는 점수를 출력

   - ex) "doldol 학생의 점수는 80입니다."

 

먼저 위와 같이 DB내 테이블을 생성하였다.

 

<?php
$name = "";

// SQL 쿼리 결과가 있다는 플래그
$select_score = false;

// 처음 접근 시 학새 이름을 입력받는 폼을 보여주기 위한 플래그
$init_access = true;
if (isset($_GET["name"])) {
    $name = $_GET["name"];
    $ini_array = parse_ini_file("/etc/web_conf/.env");
    $db_url = $ini_array["DB_URL"];
    $db_user = $ini_array["DB_USER"];
    $db_pw = $ini_array["DB_PW"];
    $db_database = $ini_array["DB_DATABASE"];

    $conn = mysqli_connect($db_url, $db_user, $db_pw, $db_database);
    $sql = "select * from score where name='{$name}'";
    $result = mysqli_query($conn, $sql);

    if ($result) {
        $row = mysqli_fetch_array($result);
        // print_r($row);

        // 결과 제대로 가져오면
        if ($row) {

            // 입력 폼 플래그 off
            // SQL 결과 플래그 on
            $init_access = false;
            $select_score = true;
        }
        // 결과 없으면
        else {
            // 입력 폼 플래그 off
            // SQL 결과 플래그 off
            $init_access = false;
            $select_score = false;
        }
    } else {
        echo "에러 발생!";
        echo mysqli_errno($conn);
        exit;
    }
} else {
    // echo "학생 이름을 입력해주세요";
    // exit;
}

?>


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <?php
    // 처음 접근시 학생 이름 받는 폼
    if ($init_access == true) {
    ?>
        <form action="">
            <input type="text" name="name" id="name" placeholder="학생 이름을 입력해주세요">
            <button type="submit">점수 확인</button>
        </form>
    <?php
        // 처음 접근이 아니고 SQL 결과 있으면
    } else if ($init_access == false && $select_score == true) {
        echo "{$row["name"]} 학생의 점수는 {$row["score"]} 입니다.";
    }
    // 처음 접근이 아니고 SQL 결과 없으면
    else if ($init_access == false && $select_score == false) {
        echo "해당 학생은 존재하지 않습니다.";
    } else {
        echo "문제가 발생했습니다.";
    }

    ?>


</body>

</html>

 

페이지 내에서 학생 이름을 입력 폼으로 받아 GET 방식으로 재전송한다.

그 GET으로 받은 결과를 이용해 점수데이터를 가져와서 보여주는 방식으로 작성하였다.

처음 접근 시 학생의 이름을 입력받는다.

 

학생의 이름 입력 시 GET 방식으로 페이지로 재전송해 그에 맞는 점수를 보여준다.

 

존재하지 않는 학생의 경우 해당 문구를 보여주는 방식으로 개발하였다.

 

반응형

댓글()