NOTICE

요즘 거의 하루에 한 개씩은 올리는 것 같네요.
이거 너무 급하게 마무리 지으면 이후에 블로그에 글 올릴 거 없어서 난감한데.
아, 그리고 제가 이거 올린 시간을 보면 오후 2시 막 그렇죠?
회사에서 일이 없어서 쳐 노는 건 아니구요, ㅋㅋㅋ
일단 제목 입력하고 포스팅 제일 밑에 있는 * 오타 뭐시기 입력하고 바로 저장을 해 버립니다.
그렇게 하고는 비공개로 만들어 놓죠.
노파심에 이러는 겁니다.
실질적인 작업은 점심 시간, 퇴근 전에 일 마무리 짓고 슬쩍, 퇴근 후에 집에서~
절대 회사에서 쳐 놀고 웹서핑이나 쳐 하고 그러는 직장인 아닙니다.
닥치고 오늘도 갑니다.

view.php<?
mysql_connect("localhost", "root", "apmsetup");
mysql_select_db("board");

$que = "select * from free where idx = $_GET[idx]";
$res = mysql_query($que);
$row = mysql_fetch_array($res);
?>
<table border="1" cellpadding="0" cellspacing="0">
   <tr>
      <td>제목 : <?=$row['postTitle']?></td>
   </tr>
   <tr>
      <td>글쓴이 : <?=$row['userName']?></td>
   </tr>
   <tr>
      <td>날짜 : <?=$row['wDate']?></td>
   </tr>
   <tr>
      <td>내용 : <?=$row['memo']?></td>
   </tr>
</table>
<a href="list.php">list</a> |
<a href="edit.php">edit</a>


 

보기 화면에서 edit라는 항목을 추가했습니다.
좀 있어 보이나요?


 

edit에 마우스를 갖다 댔습니다.
edit.php로 링크가 걸렸죠?
클릭을 하면?


 

오류가 날 거란 거, 예상하셨죠?
왜냐하면 아직 edit.php 파일은 만들지도 않았거든요. 호호호~
다시 view.php 파일로 돌아가서 view.php 파일에서 한 군데를 수정하겠습니다.

view.php<?
mysql_connect("localhost", "root", "apmsetup");
mysql_select_db("board");

$que = "select * from free where idx = $_GET[idx]";
$res = mysql_query($que);
$row = mysql_fetch_array($res);
?>
<table border="1" cellpadding="0" cellspacing="0">
   <tr>
      <td>제목 : <?=$row['postTitle']?></td>
   </tr>
   <tr>
      <td>글쓴이 : <?=$row['userName']?></td>
   </tr>
   <tr>
      <td>날짜 : <?=$row['wDate']?></td>
   </tr>
   <tr>
      <td>내용 : <?=$row['memo']?></td>
   </tr>
</table>
<a href="list.php">list</a> |
<a href="edit.php?idx=<?=$_GET['idx']?>">edit</a>


위 코드와 지금 코드가 약간 다르죠?
그렇습니다.
list.php(목록) 파일에서 view.php(보기) 파일로 클릭하나 값을 넘기기 위해서 get 방식으로 해서 ?idx=<?=$row['idx']?> 이런 식으로 넘긴 거 기억나죠?
마찬가집니다.
다만 다른 점은 여기서는 주소창에 있는 idx=2라는 값을 갖고 합니다.
그래서 edit.php?idx=<?=$_GET['idx']?>라고 했습니다.
이제 이렇게 고쳤으니 다시 실행을 해 볼까요?

 

이젠 edit에 마우스를 갖다 댔더니 저렇게 idx값까지 나오네요.
view.php 파일처럼 edit.php 파일도 같은 방식으로 해서 만들겠습니다.
짚고 넘어갈 게 있네요.

수정하는 화면은 글쓰기 화면과 같겠죠?
당연히 같을 수밖에 없겠네요.
그래서 제가 원하는 건 뭐?
재활용~ 쿨럭 -_-
일단 재활용을 한 걸 잠시 보겠습니다.

edit.php<?
mysql_connect("localhost", "root", "apmsetup");
mysql_select_db("board");

$que = "select * from free where idx = $_GET[idx]";
$res = mysql_query($que);
$row = mysql_fetch_array($res);
?>
<html>
   <head>
      <title>write</title>
   </head>
   <body>
   <form action="write.php" method="post">
      name : <input type="text" name="postTitle" /><br />
      title : <input type="text" name="userName" /><br />
      <textarea name="memo"></textarea><br />
      <input type="submit" value="write" />
   </form>
   </body>
</html>


우하하!
<? 여기 ?>는 view.php 파일에서 갖고 왔구요, <html>여기</html>은 write.html 파일에서 갖고 왔습니다.
어떤가요? 이 놀라운 재활용~
절대 제가 귀찮아서 그런 게 아니고 자원을 재활용을 해서 환경오염을 막자는 미친 소립니다~
신경 안 쓰셔도 되겠네요.

일단 저렇게 해서 실행을 해 볼까요?

 

어라?
주소창은 edit.php?idx=2라고 되어 있고 화면은 write.html 파일과 같네요.
재활용의 결괍니다~ +_+
이제 수정 페이지틱하게 고치겠습니다.

들어가기 전에 먼저 한 가지 짚고 넘어가겠습니다.
<input type="text" name="test" value="이거이거이거" />
여기에서 value에 값을 저렇게 넣어서 실행해 보면



이렇게 나오죠? ㅋㅋㅋ
감이 딱 오신 분?
예~ 맞습니다.

view.php 파일에서는 idx=2에 해당하는 값들을 그냥 <?=$row['userName']?> 이렇게 뿌렸습니다만 여기서는 input 안에 넣습니다.

edit.php<?
mysql_connect("localhost", "root", "apmsetup");
mysql_select_db("board");

$que = "select * from free where idx = $_GET[idx]";
$res = mysql_query($que);
$row = mysql_fetch_array($res);
?>
<html>
   <head>
      <title>write</title>
   </head>
   <body>
   <form action="edit_do.php" method="post">
      name : <input type="text" name="postTitle" value="<?=$row['userName']?>" /><br />
      title : <input type="text" name="userName" value="<?=$row['postTitle']?>" /><br />
      <textarea name="memo"><?=$row['memo']?></textarea><br />
      <input type="submit" value="edit" />
      <input type="hidden" name="idx" value="<?_GET['idx']?>" />
   </form>
   </body>
</html>


위에 시커멓고 굵직한 부분 보이시죠?
수정한 부분입니다.

<form action="edit_do.php" method="post">
이건 왜 고쳤냐구요?
당연히 지금은 쓰는 파일이 아닌 수정할 파일이니까 실행될 파일이 달라야죠.
실제로 여기서 수정된 데이터를 받아서 처리하는 파일은 edit_do.php 파일입니다.

name : <input type="text" name="postTitle" value="<?=$row['userName']?>" />
title : <input type="text" name="userName" value="<?=$row['postTitle']?>" />
보이시죠? value에 값을 그대로 넣은 거~
여기서 한 가지 value="" 이렇게 밖을 큰따옴표로 묶었으면 그 안은 당연히 '' 작은따옴표를 써야 합니다.
그렇지 않을 경우엔 또 다시 error를 만나겠죠.
반대로 '' 작은따옴표로 했을 경우엔 "" 큰따옴표로 해야겠죠.

<textarea name="memo"><?=$row['memo']?></textarea>
홈페이지 같은 데 보면 이용약관 같은 거 만들 때 저렇게 textarea로 많이 만들죠?
그리고 약관 넣는 부분은 <textarea>여기</textarea>에 넣구요.

<input type="hidden" name="idx" value="<?_GET['idx']?>" />
얘가 아마 여기서 제일 중요한 부분이 아닐까 싶네요.
반드시 기억해 두세요.
update를 시킬 때도 where가 들어갑니다.
그런데 여기서는 edit라는 버튼을 클릭은 하지만 막상 저장할 때 이 데이터가 어떤 데이턴지는 전혀 알 수가 없습니다.
저장할 때는 주소가 지금처럼 edit_do.php?idx=2 이런 식으로 안 넘기거든요.
그래서 hidden 필드를 하나 만들어서 거기에다가 현재 페이지의 idx값을 담아서 보냅니다.
당연히 사용자 페이지에서는 안 보입니다만 소스 보기를 할 경우엔 나타납니다.
아주 일반적인 방법이니 꼭 기억하시기 바랍니다.

<input type="submit" value="edit" />
얘는 왜 또 데리고 나왔냐구요?
write라고 된 걸 그냥 이름만 edit로 바꿨습니다.

자 이제 다시 실행을 해 보겠습니다.



오옷!
잘 나오는데요?


다음엔 수정한 값을 디비에 때려넣는(edit_do.php) 걸 살펴보도록 하겠습니다.

* 오타, 틀린 부분은 코멘트로 지적해 주시면 감사하겠습니다.