 |
|
|  |
|
 |
15년 전 |
아래는 자료를 삭제 하는 쿼리문입니다...
delete from [테이블이름] where [조건]
그냥 해석하면 [테이블이름]에서 [조건]에 맞는 항목을 삭제 하라는 것입니다.....
우리가 exam_memo테이블을 만들때 기본키(primary key)를 no로 주었습니다.
그래서 where절에는 기본키를 조건으로 잡아주는게 좋겠죠...
예를 들어보죠.......
no name memo
-- ----- -------------
21 tester 테스트입니다
22 guest 쥔장바보
23 tester 허걱
....
이렇게 3개의 글이 들어있다고 칩시다...
엇...근데 22번글에 guest라는 사람이 -_-쥔장바보 라는말을 남기고 도망가 버렸네요...
그래서 쥔장은 22번글을 삭제 하려고 합니다......
22번글을 삭제 하는 쿼리는?
delete from exam_memo where no=22
해석을 하면......
delete (지어버려라)
from (어디서?)
exam_memo (exam_memo에서)
where (어느걸?)
no=22 (no가 22인것을)
맞죠?^^;;;
그럼 이제 삭제 버튼을 만들어 주어 볼까요~
일단 list.php의 소스중에서 글 가져오는 부분만 보도록 합시다....
$query="select * from exam_memo order by no desc limit $start,$page"; //꺼내올 쿼리문
$result=mysql_query($query,$connect); //mysql에 요청
while($data=mysql_fetch_array($result)) //결과를 꺼내옴
{
$data[date]=date('y-m-d',$data[date]);//시간가공
$data[name]=stripslashes($data[name]);//이름에서 제거
$data[memo]=stripslashes($data[memo]);//메모에서 제거
echo "<tr><td>$data[no]</td><td>$data[name]</td><td>$data[memo]</td><td>$data[date]</td></tr>";//꺼내온것출력
}
자 여기서 echo부분만 보죠....
echo "<tr>
<td>$data[no]</td>
<td>$data[name]</td>
<td>$data[memo]</td>
<td>$data[date]</td>
</tr>";//꺼내온것출력
여기에 <td></td>를 추가해서 삭제 버튼을 넣어줍니다.
echo "<tr>
<td>$data[no]</td>
<td>$data[name]</td>
<td>$data[memo]</td>
<td>$data[date]</td>
<td>삭제</td>
</tr>";//꺼내온것출력
삭제라고만 넣었습니다.....
echo "<tr>
<td>$data[no]</td>
<td>$data[name]</td>
<td>$data[memo]</td>
<td>$data[date]</td>
<td><a href=delete.php?no=$data[no]>삭제</a></td>
</tr>";//꺼내온것출력
링크를 아래와 같이 걸어주었습니다.
<a href=delete.php?no=$data[no]>삭제</a>
delete.php로 링크를 거는데 no에 $data[no]라는 값을 넣어서 보내줍니다.
그럼 delete.php로 넘어갔을때 no=$data[no]가 되겠쬬....
이 페이지를 실행하였는데......
페이지에 21에서 25번글까지 출력되었다면......저 링크는
<a href=delete.php?no=25>삭제</a>
<a href=delete.php?no=24>삭제</a>
<a href=delete.php?no=23>삭제</a>
<a href=delete.php?no=22>삭제</a>
<a href=delete.php?no=21>삭제</a>
행마다 이런 식으로 출력됩니다...
이해 가시죠?;;;
그리고 <td></td>가 하나 추가되었으니.....
위의 타이틀 부분도 아래와 같이 수정해 줍니다.
<tr><td>번호</td><td>이름</td><td>메모</td><td>시간</td><td>삭제</td></tr>
<td>삭제</td>라는 열을 하나 추가 시켜 주었습니다.
그럼 이제 delete.php를 만들어 볼까요...
일단 list.php에는 글마다 오른쪽에 삭제버튼이 있습니다...
그리고 그 삭제 버튼을 누르면 delete.php?no=번호 와 같이 링크가 걸리게 되고 클릭을 하면 delete.php로 이동하는데.....
no에는 그 삭제하려는 글의 no가 전해 지게 됩니다.
아까 22번을 삭제 하려했으니.....
22번글의 오른쪽에 있는 삭제 버튼을 클릭했겠죠...
그러면 delete.php?no=22 로 이동하게 됩니다...
자 그럼이제 delete.php로 이동했습니다.....
no는?........네~ 22죠...^^
일단 디비에 접속합니다...
<?
include"connect.php";//디비에접속
?>
그리고 이제 쿼리문을 만들어야죠...
쿼리문은.....
$input="delete from exam_memo where no=$no";
맞죠?......get방식으로 넘어온 $no값을 넣어줬습니다.
$no에는 22가 있었으니까......해석이 되면.....
$input="delete from exam_memo where no=22";
위처럼 되겠죠.....
소스를 맞춰보죠;;;
<?
include"connect.php";//디비에접속
$input="delete from exam_memo where no=$no";//삭제쿼리문
mysql_query($input,$connect);//디비에 넣기
?>
이렇게 하면 no가 $no인 자료가 삭제 됩니다.
자 삭제 되었는데 이제 어떻게 해야죠?....
다시 list.php로 이동합니다....
이동하는 방법은 write.php에서도 했었죠.....
<meta http-equiv='refresh' content='0;url=list.php'>
요걸 또 써먹습니다...
이걸로 끝입니다 (__)
>>> delete.php 소스
<?
include"connect.php";//디비에접속
$input="delete from exam_memo where no=$no";//삭제쿼리문
mysql_query($input,$connect);//디비에 넣기
?>
<meta http-equiv='refresh' content='0;url=list.php'>
>>> delete.php 소스끝
그런데 이 소스만으로는 문제가 좀 있죠...
이렇게 해두면 아무나 와서 삭제를 해버려도 막을 방법이 없습니다.
그래서 메모를 쓸때 비밀번호를 하나 받아놓고.....
글과 함께 저장합니다.....
그리고 삭제 할때 비밀번호를 물어보게 해놓고.....
비밀번호를 받은다음에......글과 함께 저장되어있던 비밀번호와 맞춰보고 같을때는 삭제 하고 틀리면 에러메세지를 보여주는 형식을 취해야 합니다.
|
|
추천 : 530 |
추천
목록
|
|
|  |
|