코드를 작성 전, 한글로 내가 할 것들을 미리 작성해두는 게 편해서 다음과 같이 정리했다.

 

💡구조
0. mini_mission.php 생성

1. 최상단 DB 연결 php 넣기

2. 학생 이름을 받는 input, 확인 submit 만들기

3. DB에서 위 이름에 해당하는 결과 검색

4. 만약 이름이 있다면, 이름과 점수를 나타내고

5. 만약 이름이 없다면, 해당 학생은 DB에 없다고 표시해주기

 

 

다음은 코드 완성 후의 결과이다.

결과 페이지 1 (학생을 찾았을 때)

 

 

결과페이지 2 (학생이 존재하지 않을 때)

 

 

 

코드는 다음과 같이 작성했다.

 

mini_mission.php

<!-- 학생 이름, 점수가 들어가있는 DB
GET방식으로 학생 이름 나오면, 점수가 출력되는 페이지 만들기 -->

<?php
require_once 'db_func.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>학생 성적 조회</title>
        <link rel="stylesheet" type="text/css" href="mini_mission.css">
    </head>
    <body>
        <h2>학생의 이름을 입력하면 성적을 확인할 수 있습니다.</h2>
        <form action="">
            <input type="text" name="sname" placeholder="이름을 입력하세요.">
            <button type="submit">확인</button>
        </form>    
        <div style="<?php if(!isset($_GET['sname'])) echo 'display: none;'; ?>">
        <?php
                if(isset($_GET['sname'])){
                    $sname = $_GET['sname'];

                    $sql = "select * from test_table where name ='$sname'";
                    $result = mysqli_query($db_conn, $sql);
                    $row = mysqli_fetch_array($result);

                    if(isset($row)){
                        echo "<h1>".$row['name'] . " 학생의 점수는 " . $row['score'] . " 입니다.</h1>";
                    } else {
                        echo "<h1>해당 학생은 DB에 존재하지 않습니다.</h1>";
                    }
                }
                mysqli_close($db_conn);
            ?>
        </div>
    </body>
</html>

 

중요한 부분을 라인별로 설명하면 다음과 같다.

 

<?php
require_once 'db_func.php';
?>

 

DB 연결, 해당 php을 불러와 DB 연결할 수 있는 티켓을 불러온다.

 

 

<div style="<?php if(!isset($_GET['sname'])) echo 'display: none;'; ?>">

 

입력된 입력이 없는데도, 메세지가 표시되면 안 되니 존재할 때만 표기되도록 설정했다.

 

 

$sql = "select * from test_table where name ='$sname'";
$result = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($result);

 

이름이 있으면 DB에서 검색 후 그 결과는 sql 변수에 저장한다.

DB티켓과 위 변수를 result 변수에 저장한다.

그 결과에서 데이터를 뽑아 row 변수에 저장한다.

 

 

if(isset($row)){
    echo "<h1>".$row['name'] . " 학생의 점수는 " . $row['score'] . " 입니다.</h1>";
    } else {
    echo "<h1>해당 학생은 DB에 존재하지 않습니다.</h1>";
}

 

row의 값이 존재한다면 DB의 name과 score에서 각각의 값이 불러오고 echo로 화면에 표시한다.

값이 존재하지 않는다면, 존재하지 않는다는 메세지를 출력한다.

 

 

mysqli_close($db_conn);

 

mysql 데이터베이스 연결을 닫는다.

연결을 닫는 이유 : 많은 연결이 열려 있으면, 그 자체로 자원이 소모되며 서버 성능을 낮출 수 있다. 또한 보안적으로도 무단 엑서스 가능성을 낮춘다.

 

 

 

 

+ Recent posts