6. 가상글번호붙이기

글이 16개 있는데 중간에 15번글을 삭제하면 그 번호가 비게 된다
이때 빠지는 글이 없도록 번호를 붙여줘야 하는데,

먼저 글 번호를 붙여주기 위해 글의 총 개수($total)을 이용한다.
총개수가 15개라면 첫번째 페이지의 글은15부터 감소하게 되는 것이다.

그리고 두번째 페이지의 글은 첫번째 페이지에서 페이지 당 글의 수($page)만큼의 번호를 사용하였기 때문에, 글의 총 개수($total)에서 페이지 당 글의 수($page)를 빼준 수부터 글 번호가 감소하게 된다.

결국
$number = $total - ($pagenum*$page); //현재 페이지의 시작 글번호
이 된다

예를들어
$total=15, $page=5일 경우, $pagenum은 첫번째 페이지가 0이므로
$total이 그대로 $number가 된다. 즉 글번호는 $total, 즉 15부터 감소해 나가는 것이다.

두번째페이지에서는 $pagenum이 1이므로 $page와의 곲은 5가 된다.
$total-5=10이므로 두번째 페이지는 10번부터 시작한다.

같은방법으로 세번째페이지를 계산하면 15-10=5, 글번호는 5번부터 시작한다


list.php소스에서 while문의 바로 앞에 위 소스를 추가해보자

$number = $total - ($pagenum * $page); //현재 페이지의 시작 글번호
while ($data=mysql_fetch_array($result)) { //글꺼내기
 $data[name]=stripslashes($data[name]); //이름의 \제거
 $data[memo]=stripslashes($data[memo]); //내용의 \제거
 $data[memo]=nl2br ($data[memo]); //띄어쓰기
 $data[time]=date('y-m-d', $data[time]); //시간포맷변환

 echo "
  <tr>
  <td>$number</td><td> $data[name]</td><td> $data[memo]</td><td> $data[time]</td></tr>";
$number--; //글번호 감소
}
mysql_close($connect);
?>
</table>


7. del.php(삭제)
아래 것을 리스트 소스에 덧붙여 주자 그래야 삭제 버튼이 생긴다
<a href='del.php?no=$data[no]'>삭제 </a>

del.php
<form method=post action =del_ing.php>
<input type=hidden name=no value=<?=no?>>
비밀번호 <input type=password size=10 name=pass>
<input type=submit value='삭제'>
</form>

del_ing.php
<?
include "connecct.php"; //mysql접속
include "lib.php"; //함수라이브러리
$query= "SELECT * FROM exam_memo WHERE no=$no"; //no컬럼의 값이 no인 글을 가져오라
$data=mysql_fetch_array ( mysql_query ($query, $connect)); //가져온 글을 연관배열에 저장해라

$pass = crypt ($pass,12) //비밀번호암호화
if ($pass==$data[pass]) {
mysql_query ("DELETE FROM exam_memo WHERE no=$no", $connect);
}
else {
error ("비밀번호가 정확하지 않습니다");
}

mysql_close ($connect);
move_page ("list.php");
?>


8. edit.php (수정)

list.php에 삭제에서와 같은 방법으로 수정버튼을 만들어준다
<a href='edit.php?no=$data[no]'>수정 </a>

edit.php
<?
include "connecct.php"; //mysql접속
include "lib.php"; //함수라이브러리
$query= "SELECT * FROM exam_memo WHERE no=$no"; //no컬럼의 값이 no인 글을 가져오라
$data=mysql_fetch_array ( mysql_query ($query, $connect)); //가져온 글을 연관배열에 저장해라

$data[name]= stripslashes ($data[name]); //이름의 \제거
$data[memo]= stripslashes ($data[memo]); //내용의 \제거
mysql_close ($connect);
?>


<form method=post action=Write_ing.php autocomplete=off>
<input type=hidden name=no value=<?=$no?> >
이름 <input type=text size=10 name=name>
비번 <input type=password size=10 name=pass> <br>
<textarea cols=30 rows=3 name=memo><?=$data[memo]?></textarea></br>
<input type=submit value='글수정'>
</form>




edit_ini.php
<?
include "connecct.php"; //mysql접속
include "lib.php"; //함수라이브러리
$query= "SELECT * FROM exam_memo WHERE no=$no"; //글정보꺼내기-no컬럼의 값이 no인 글을 가져오라
$data=mysql_fetch_array ( mysql_query ($query, $connect)); //가져온 글을 연관배열에 저장해라

$pass = crypt ($pass,12) //비밀번호암호화
if ($pass==$data[pass]) { //글수정

$name=addslashes ($name); //이름의 특수문자에 \를붙임
$memo=addslashes ($memo); //내용의 특숨ㄴ자에 \를붙임
mysql_query ("UPDATE exam_memo SET name='$name', memo='$memo' WHERE no=$no", $connect);
}
else {
error ("비밀번호가 정확하지 않습니다");
}

mysql_close ($connect);
move_page ("list.php");
?>

+ Recent posts