반응형

 

 

지금까지 강좌에서 보면 index.php와 view.php에 똑같은 부분이 있다는걸 알 수 있다. 이렇게 php에서는 같은 부분을 파일 하나에 넣어서 필요할때마다 갖다 쓸 수 있는 기능이 있다. 그게 바로 include 다.

 

각파일에서 디비 연결을 위한 소스 부분을 하나의 파일로 만들어보자.

 

dbcon.php파일을 만들어서 아래와 같이 만든다.

 

<?php

$hostname="localhost";
$dbuserid="testman";
$dbpasswd="1111";
$dbname="testdb";

$mysqli = new mysqli($hostname, $dbuserid, $dbpasswd, $dbname);
if ($mysqli->connect_errno) {
    die('Connect Error: '.$mysqli->connect_error);
}

?>

index.php와 view.php의 상단에 있던 디비 연결을 위한 소스이다. 이 파일을 만들어서 디비 연결을 필요로 하는 파일에서는 모두 include를 사용한다. 기존에 들어있던 소스도 걷어내고 include로 대신한다.

 

각각 파일을 열어 상단에 있던 디비 연결 부분을 삭제하고 아래 소스를 넣는다.

 

include $_SERVER["DOCUMENT_ROOT"]."/dbcon.php";

 

그리고 각 파일을 열어 이전과 같이 화면이 잘 나오는지 확인하면 된다.

 

비뀐 소스는 아래와 같아.

 

index.php

 

<?php
include $_SERVER["DOCUMENT_ROOT"]."/dbcon.php";

$result = $mysqli->query("select * from board") or die("query error => ".$mysqli->error);
while($rs = $result->fetch_object()){
    $rsc[]=$rs;
}

// echo "<pre>";
// print_r($rsc);

?>


<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>

    <title>게시판 리스트</title>
  </head>
  <body>

<table class="table" style="width:70%;margin:auto;">
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">글쓴이</th>
<th scope="col">제목</th>
<th scope="col">등록일</th>
</tr>
</thead>
<tbody>
<?php 
$i=1;
foreach($rsc as $r){
?>
<tr>
<th scope="row"><?php echo $i++;?></th>
<td><?php echo $r->userid?></td>
<td><a href="/view.php?bid=<?php echo $r->bid;?>"><?php echo $r->subject?></a></td>
<td><?php echo $r->regdate?></td>
</tr>
<?php }?>
</tbody>
</table>

  </body>
</html>

 

 

view.php

 

<?php
include $_SERVER["DOCUMENT_ROOT"]."/dbcon.php";

$bid=$_GET["bid"];
$result = $mysqli->query("select * from board where bid=".$bid) or die("query error => ".$mysqli->error);
$rs = $result->fetch_object();

// echo "<pre>";
// print_r($rs);

?>

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>

    <title>게시판 보기</title>
  </head>
  <body>


    <div class="col-md-8" style="margin:auto;padding:20px;">
      <h3 class="pb-4 mb-4 fst-italic border-bottom" style="text-align:center;">
        - 게시판 보기 -
      </h3>

      <article class="blog-post">
        <h2 class="blog-post-title"><?php echo $rs->subject;?></h2>
        <p class="blog-post-meta"><?php echo $rs->regdate;?> by <a href="#"><?php echo $rs->userid;?></a></p>

        <hr>
        <p>
          <?php echo $rs->content;?>
        </p>
        <hr>
      </article>

      <nav class="blog-pagination" aria-label="Pagination">
        <a class="btn btn-outline-primary" href="/index.php">목록</a>
        <!-- <a class="btn btn-outline-secondary" href="#">답글</a> -->
      </nav>

    </div>

</body>
</html>    

 

반응형

+ Recent posts