19장문제 [PHP와 MySQL로 간단한 게시판 만들기]

MySQL & PHP 학습/연습문제 2016. 3. 13. 17:53

728x90
반응형

본문에서 작성한 simple_select.php와 simple_insert.php, simple_delete.php, simple_search.php를 하나의 파일로 정리한 simple2_process.php와 메인 화면인 simple2.html을 다음과 같이 작성하시오.


▶ simple2.html(메인화면)

<input> 태그에 hidden 속성을 설정하고, 표시는 'sel', 추가는 'ins', 삭제는 'del', 검색은 'ser'이라는 문자를 전송한다. simple2_process.php에서 이 4개의 처리를 실행할 수 있도록 simple.html을 수정한다.


▶ simple2_process.php(데이터를 처리하는 PHP 스크립트 파일)

simple2.html에서 보내온 'sel'과 'ins', 'del', 'ser'라는 문자를 사용해서 switch ~case ~로 분기하고, 표시와 추가, 삭제, 검색을 처리하는 PHP파일.


hint!

4개의 스크립트를 조합한다. 물론, 정답은 하나가 아니니 스스로 여러 가지 방법을 생각해 보자.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

① 다음의 HTML 파일 simple2.html을 작성합니다.


예제 19-6 simple2.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<meta charset="UTF-8">
 
<form method="post" action="simple2_process.php">
    메시지를 표시합니다.<br>
    <input type="submit" value="확인">
    <input type="hidden" name="h" value="sel">
</form>
 
<hr>
 
<form method="post" action="simple2_process.php">
    이름 입력<input type="text" name="a1"><br>
    메시지 입력<input type="text" name="a2"><br>
    <input type="submit" value="확인">
    <input type="hidden" name="h" value="ins">
</form>
 
<hr>
 
<form method="post" action="simple2_process.php">
    삭제 번호 입력<input type="text" name="b1"><br>
    <input type="submit" value="확인">
    <input type="hidden" name="h" value="del">
</form>
 
<hr>
 
<form method="post" action="simple2_process.php">
    검색 키워드 입력<input type="text" name="c1"><br>
    <input type="submit" value="확인">
    <input type="hidden" name="h" value="ser">
</form>
cs


② 다음 스크립트를 작성합니다.


예제 19-7 simple2_process.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php 
    /* 데이터베이스 접속, 데이터베이스 선택 */
    $s = mysql_connect("localhost""root""1234") or die("실패입니다.");
    mysql_select_db("db1"$s);
 
    /* name이 h인 value를 변수 $h_d에 대입 */
    $h_d = $_POST["h"];
 
    /* 변수 $h_d의 값(sel, ins, del, ser 중 하나)으로 조건 분기 */
    switch ("$h_d") {
        case 'sel':
            $re = mysql_query("SELECT * FROM tbk ORDER BY number");
            break;
 
        case 'ins':
            $a1_d = $_POST["a1"];
            $a2_d = $_POST["a2"];
            mysql_query("INSERT INTO tbk (name, mess) VALUES('$a1_d', $a2_d)");
            $re = mysql_query("SELECT * FROM tbk ORDER BY number");
            break;
 
        case 'del':
            $b1_d = $_POST["b1"];
            mysql_query("DELETE FROM tbk WHERE number=$b1_d");
            $re = mysql_query("SELECT * FROM tbk ORDER BY number");
            break;
 
        case 'ser':
            $c1_d = $_POST["c1"];
            $re = mysql_query("SELECT * FROM tbk WHERE mess LIKE '%$c1_d%' ORDER BY number");
            break;
    }
 
    /* 질의 결과 표시 */
    while ($result = mysql_fetch_array($re)) {
        print $result[0];
        print " : ";
        print $result[1];
        print " : ";
        print $result[2];
        print "<br>";
    }
 
    /* 데이터베이스 접속 종료 */
    mysql_close($s);
 
    /* 메인 화면 링크 */
    print "<br><a href='simple.html'>메인 화면으로</a>";
 ?>
cs


반응형