본문 바로가기
Study/php

PHP] MySql 이용하기( 간단한 예제)

by Answer Choi 2015. 10. 5.
반응형

예제 다운로드


이번에는 MySQL을 이용하여서 php로 제어하는 걸 만들어 보겠습니다.


MySQL에 대한 설명은 생략합니다.


자세한 정보는 아래 링크를 참고하세요(database명과 table명을 같게 만들었습니다.)


SQL 명령어


먼저 GUI입니다.


윗부분에 저장된 DB의 데이터가 나타나고, 밑에는 DATA를 추가할 수 있습니다.



윗부분 (ADD DATA 윗부분) 소스입니다.


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
50
51
52
53
<table border='1'>
            <tr align='center'>
                <td>
                    <p>ID</p>
                </td>
                <td>
                    <p>URL</p>
                </td>
                <td>
                    <p>DESCRIPTION</p>
                </td>
                <td>
                    <p>DELETE/MODIFY</p>
                </td>
            </tr>
        <?php
 
        $conn=mysql_connect('localhost','root','0157');
        if(!$conn){
            die('could not connect:'.mysql_error());
        }
        $selDb=mysql_select_db('answerofgod');
        if(!$selDb){
           // die('can not use answerofgod :'.mysql_error()); 
            $createDB=mysql_query('create database answerofgod');
            $useDB=mysql_query('use answerofgod');
            $createTable=mysql_query('create table blog(
                                       id int not null auto_increment, 
                                       url text not null, 
                                       description text null, 
                                       constraint pk primary key(id) 
                                       )');
        }
        $queryData=mysql_query('select * from blog');
        if(!$queryData){
            echo('query error :'.mysql_error());
        }
        while($row=mysql_fetch_assoc($queryData)){
            echo '<tr><form action="./management.php?mode=modify" method="POST">
           <td><input name="id" value="'.$row['id'].'" readonly size=1/></td>
           <td><input name="url" value="'.$row['url'].'"/></td>
           <td><input name="desc" value="'.$row['description'].'"/></td>
           <td>
           <input type="submit" value="MODIFY"/>
           </form>
           <form action="./management.php?mode=delete" method="POST">
           <input type="hidden" name="id" value="'.$row['id'].'"/>
           <input type="submit" value="DELETE"/>
           </form>
           </td>';
       }
       ?>   
cs


DB 데이터를 조금이라도 이쁘게 뿌려주기 위해 table을 사용하였고, php안에서 tag입력을 위해


echo문을 사용하였습니다.


Line 18~38 : DB접속하고 쿼리하여 data를 가져오는데 database가 없으면 만들도록 하였습니다.


Line 39~51 : 가져온 데이터를 화면에 뿌려줍니다.


Line 39~45 : 이 부분이 뿌려주고, 수정할때 사용할 부분입니다.


Line 46~49 : 이 부분은 데이터를 삭제하는 부분입니다.


데이터 추가부분은 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
<form action="./management.php?mode=insert" method="POST">
            <table border='1'>
                <tr>
                    <td align='center'>
                       <p> BLOG URL</p>
                    </td>
                    <td>
                        <input type="text" name="url" size='25'>   
                    </td>
                </tr>
 
                <tr>
                    <td align='center'>
                        <p>DESCRIPTION</p>
                    </td>
                    <td>
                        <input type="text" name="description" size='25'/>
                    </td>
 
                </tr>
 
                <tr align='center'>
                    <td>
                        <p>ADD</p>
                    </td>
                    <td>
                        <input type="submit" value="send"/>            
                    </td>
                </tr>
 
            </table>
        </form
cs


데이터 수정시에는 management.php?mode=modify,


데이터 삭제시에는 management.php?mode=delete,


데이터 추가시에는 management.php?mode=insert


사용하였습니다.


manegement.php문에서 swich문을 사용하여 mode값에 따라 다른 작업들을 수행하게 됩니다.



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
<?php
$conn=mysql_connect('localhost','root','0157');
if(!$conn){
    die('could not connect:'.mysql_error());
}
//echo 'Connected Successfully';
$selDb=mysql_select_db('answerofgod');
if(!$selDb){
    die('can not use answerofgod :'.mysql_error());    
}
 
switch($_GET['mode']){
    case 'insert':
        if($_POST['url']!=null){
            $insert=mysql_query('insert into blog (url,description) value ("'.$_POST['url'].'","'.$_POST['description'].'")' );
            if(!$insert){
            die('Invalid query :'.mysql_error());
            }    
        }
        header('Location: blog_manage.php');
        break;
    case 'delete':
        $delete=mysql_query('delete from blog where id='.$_POST['id']);
        if(!$delete){
            die('Invalid query :'.mysql_error());
        }
        header('Location: blog_manage.php');
        break;
    case 'modify':
        $update=mysql_query('update blog set url="'.$_POST['url'].'",description="'.$_POST['desc'].'" where id='.$_POST['id']);
        if(!$update){
            die('Invalid query :'.mysql_error());
        }
        header('Location: blog_manage.php');
        break;
    default:
        header('Location: blog_manage.php');
        break;
    }
?>    
cs


Line 2~10 : database에 접속하는 부분입니다.


Line 13~21 : 데이터를 추가하는 부분입니다. 


작업이 끝난후 메인페이지로 돌아옵니다.(blog_manage.php)


void header ( string $string [, bool $replace = true [, int $http_response_code ]] )


Line 22~28 : 선택한 데이터를 삭제합니다.


Line 29~35 : 선택한 데이터를 수정합니다.


데이터를 추가해 보겠습니다.


ADD DATA부분에 블로그 주소와 설명을 적고 send를 누릅니다.


위쪽에 데이터가 추가된 걸 볼 수 있습니다.


하나 더 추가해 보겠습니다.


블로그 description이 틀렸습니다.


description부분에 올바르게 적고 modify를 클릭합니다.


수정되었습니다.


Delete를 눌러보겠습니다.


데이터가 삭제되었습니다.


만약에 데이터를 새로 추가하게 되면 ID는 4부터 시작합니다.

왜냐하면 db를 만들때 id를 유일한 숫자(primary key)로 생성했기 때문입니다.
































반응형

'Study > php' 카테고리의 다른 글

PHP] PDO익스텐션 이용하기( 간단한 예제)  (2) 2015.10.07
PHP] MySqli익스텐션 이용하기( 간단한 예제)  (0) 2015.10.07
PHP ] 시간  (0) 2015.10.02
PHP ] GET, POST  (0) 2015.10.01
PHP 파일 업로드및 파일 정보보기  (0) 2015.10.01

인기글