티스토리 뷰

안녕하세요, 초짜입니다.


저번 시간에 간단하게 메인 페이지를 구성했었습니다.


이번에는 이제 정보를 입력하고 확인 버튼을 누르면 DB에 저장할 수 있게 해보겠습니다.


insert.php라는 새로운 파일을 만들어주세요.


우선 DB에 연결하기 위하여


$conn = mysqli_connect("localhost", "사용자 이름", "비밀번호");

$db = mysqli_select_db($conn, "데이터베이스 이름");


를 입력해주세요.


그리고 이번에는 쿼리문을 작성해보도록 하겠습니다.


$sql = "INSERT INTO guestbook (name, pass, content) VALUES('$_POST[name]', '$_POST[pass]', '$_POST[content]')";


이 구문을 해석해보자면 $sql 변수에다가 쿼리문을 넣는 것인데요.


쿼리문의 내용은 guestbook 테이블의 name, pass, content 필드에다가 값으로


POST 방식으로 전달받은 name, pass, content를 넣는 것입니다.


list.php를 보시면 form 태그에 POST 방식으로 insert.php에 전달하는 내용이 있을 것입니다.


쿼리문을 변수에 넣었으니 연결해줍시다.


$conn->query($sql);


이건 mysqli_query($conn, $sql)이랑 같은 뜻이지만 저는 저렇게 쓰겠습니다.


그리고 다시 메인 페이지로 돌아가야 하기도 하고 알림 창이 뜨면 좋을것 같으니


echo를 사용해서 조금의 JavaScript를 이용하여


echo "<script>alert('글이 등록되었습니다.');";

echo "location.href='list.php';</script>";


이렇게 작성해주면 insert.php는 완성입니다. 전체 코드를 봅시다.


    <?php

    $conn = mysqli_connect("localhost","사용자이름","비밀번호");

    $db = mysqli_select_db($conn, "데이터베이스이름");

    $sql = "INSERT INTO guestbook (name, pass, content) VALUES('$_POST[name]', '$_POST[pass]', '$_POST[content]')";

    $conn->query($sql);


    echo "<script>alert('글이 등록되었습니다.');";

    echo "location.href='list.php';</script>";

     ?>


이렇게 insert.php는 끝났습니다.


그런데 이렇게 해놔선 저장만 되지 볼 수가 없네요.


list.php를 수정해서 DB의 결과를 출력하게 해봅시다.


우리는 추가된 데이터의 행의 개수만큼 출력할 것입니다.


그리고 데이터의 필드값을 하나하나 다 출력해야 되므로


fetch_array를 사용하겠습니다.


일단 행의 개수를 계산해보기 위해 쿼리문을 작성해보겠습니다.


$sql = "SELECT * FROM guestbook ORDER BY id DESC";

$result = $conn->query($sql);


이렇게 하면 guestbook 테이블에 있는 데이터를 내림차순으로 검색하게 됩니다.


그리고 출력이 필요하겠죠.


<?php

    while($row=$result->fetch_array()){

      echo "<table width=600 border=1><tr>";

      echo "<td>No. $row[id]</td>";

      echo "<td>$row[name]</td>";

      echo "<td>$row[wdate]</td>";

      echo "<td><a href='modifycheck.php?id=$row[id]'>수정</a></td>";

      echo "<td><a href='delete.php?id=$row[id]'>삭제</a></td></tr>";

      echo "<tr><td colspan=5>$row[content]</td>";

      echo "</tr></table>";

      echo "<br />";

    }

?>


검색된 데이터의 행의 개수를 $row 변수에 저장했습니다.


fetch_array는 연관 배열이기 때문에 $row[name]이면 $row번째 행에 있는 name값을 나타내게 됩니다.


while문을 사용해서 데이터가 없을 때까지 출력합니다.


중간에 a 태그를 볼 수 있는데 그건 나중에 수정 페이지와 삭제 페이지를 구현할 때 다시 보게 될 것입니다.


이제 수정된 list.php 코드를 봅시다.


<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8">

    <title>글 쓰기 페이지</title>

  </head>

  <body>

    <?php

    $conn = mysqli_connect("localhost","사용자이름","비밀번호");

    $db = mysqli_select_db($conn, "데이터베이스이름");

    $sql = "SELECT * FROM guestbook ORDER BY id DESC";

    $result = $conn->query($sql) or die ($this->_connect->error);

    ?>

    <br />

    <center>

    <form action="insert.php" method="post">

      <table border=1 width=600>

        <tr>

          <td>이름</td><td><input type="text" name="name"></td>

          <td>비밀번호</td><td><input type="password" name="pass"></td>

        </tr>

        <tr>

          <td  colspan=4>

            <textarea placeholder="내용을 입력하세요" name="content" rows="8" cols="80"></textarea>

          </td>

        </tr>

        <tr>

          <td colspan=4 align=right><input type="submit" value="확인"></td>

        </tr>

      </table>

    </form>

    <br />

    <?php

    while($row=$result->fetch_array()){

      echo "<table width=600 border=1><tr>";

      echo "<td>No. $row[id]</td>";

      echo "<td>$row[name]</td>";

      echo "<td>$row[wdate]</td>";

      echo "<td><a href='modifycheck.php?id=$row[id]'>수정</a></td>";

      echo "<td><a href='delete.php?id=$row[id]'>삭제</a></td></tr>";

      echo "<tr><td colspan=5>$row[content]</td>";

      echo "</tr></table>";

      echo "<br />";

    }

    ?>

  </center>

  </body>

</html>


된것 같습니다. 이제 확인을 해보겠습니다.



잘 됩니다. 수정이나 삭제를 누르면 오류가 뜨는 것은 당연합니다.


아직 만들지 않았으니까요.


이제 추가를 만들었으니 다음에는 삭제를 만들어보겠습니다.


이번 포스팅은 여기까지입니다, 감사합니다.



댓글 한번씩 달아주시면 감사하겠습니다!


초짜의 예전 블로그 가기

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/03   »
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
글 보관함