foreach에 페이징 처리 질문드립니다
본문
열린이글님이 올리신 자료이고요 이거를 페이징 처리할려고 합니다
이걸 어떤방식으로 처리해야할지 전혀 모르겠습니다 ㅠㅠ
간단하게 좀 알려주시면 감사하겠습니다..
소스는 원본 그대로 사용하기 때문에 링크로 대처했습니다..
답변 2
링크의 소스에서
<form name="cookielist" method="post" style="margin:0px;"></form> 안의 내용을 수정했습니다.
대충 만들어서 테스트는 못했네요.
<form name="cookielist" method="post" style="margin:0px;">
<?
if (isset($_COOKIE["viewcookie_{$mb_id}"])) {
//페이징 부분 시작
$total_cnt = count($_COOKIE["viewcookie_{$mb_id}"]); //전체갯수
$page_row = 10; //페이지당 보이는 글수
$scale = 5; //페이지 영역에 보여질 페이지의 수, 이렇게 페이지가 몇개 보일지 여부 << 1 2 3 4 5 >>
$total_page = ceil($total_cnt / $page_row); //총 페이지 수
$page = (intval($_GET['page']) > 0) ? intval($_GET['page']) : 1; //페이지
//페이지가 총 페이지 수보다 큰지 체크
$page = ($page > $total_page) ? $total_page : $page;
//페이지 영역에 보여질 데이터정리
$page_start = (intval($page / $scale) * $scale) + 1;
if(!($page % $scale)) $start -= $scale;
$prev = $start - $scale;
$next = $start + $scale;
if($start < 1) $start = 1;
$page_end = $start + $scale - 1;
if($page_end > $total_page) $page_end = $total_page;
$prev_page = ($prev >= 1) ? "page=".$prev : ""; //이전페이지 링크
$next_page = ($next =< $total_page) ? "page=".$next : ""; //다음 페이지 링크
$page_data = array();
if($prev_page != "") $page_data[] = array("display" => "<<", "link" => $_PHP_SELF."?".$prev_page);
for($i=$page_start;$i<$page_end;$i++){
$link = ($page != $i) ? $_PHP_SELF."?page=".$i : "";
$page_data[] = array("display" => $i, "link" => $link);
}
if($next_page != "") $page_data[] = array("display" => ">>", "link" => $_PHP_SELF."?".$next_page);
// 페이지별 가져올 데이터를 추출하기 위한 시작&끝 숫자
$page_start_num = (($page - 1) * $page_row) + 1; //아래 $p_num 값을 이용;
$page_end_num = ($page * $page_row); //아래 $p_num 값을 이용;
//페이징 부분 끝
$k = 1 ;
$p_num = 0; //페이징을 위한 변수
foreach ($_COOKIE["viewcookie_{$mb_id}"] as $name => $c_wr_id) {
$p_num++;
if($p_num >= $page_start_num && $p_num <= $page_end_num){ //페이지에 들어갈 부분만 보이기
$name1 = explode("#",$c_wr_id);
$cookie_table = $name1[0];
$cookie_wr_id = $name1[1];
$cookie_datetime = $name1[2];
$cookie_datetime = str_replace("-",".",$cookie_datetime);
$m = $k++;
$m = (($page - 1) * $page_row) + $p_num;//$m 값 페이지에 맞게 수정
$c_table = sql_fetch(" select bo_subject from {$g5['board_table']} where bo_table = '$cookie_table' ");
$c_wr = sql_fetch(" select * from {$g5['write_prefix']}{$cookie_table} where wr_id = '$cookie_wr_id' ");
$cookie_subject = hanCut($c_wr[wr_subject],'100','...');
echo "
<table width='100%' border=0 cellpadding=0 cellspacing=0>
<tr align='center'>
<td width=50 style='padding:7px 0px 5px 0px;'>{$m}</td>
<td width=90 style='padding:7px 0px 5px 0px;'><a href='$g5[bbs_path]/board.php?bo_table={$cookie_table}'>{$c_table[bo_subject]}</a></td>
<td align='left'style='padding:7px 0px 5px 0px;' style='word-break:break-all;'>
<a href='$g5[bbs_path]/board.php?bo_table={$cookie_table}&wr_id=$cookie_wr_id' title='{$c_table[bo_subject]}' style='padding:3px 0px 3px 0px;font-size:11px;font-family:돋움;'>$cookie_subject</a>
</td>
<td width=120 style='padding:7px 0px 5px 0px;'>$cookie_datetime</td>
<td width=50 style='padding:7px 0px 5px 0px;'><a href=\"javascript:select_cookie('{$cookie_table}', '{$cookie_wr_id}', '{$mb_id}');\">삭제</a></td>
</tr>
<tr><td colspan=5 height=1 bgcolor=#f4f4f4></td></tr></table>";
}
}
// 페이지영역 표시 (style은 알아서 바꾸기)
echo '<div style="width:100%;text-align:center;padding:5px;line-height:25px;">';
foreach($page_data => $_page_row){
echo '<a href="'.$_page_row['link'].'" style="margin:3px;padding:3px;border:1px solid gray;">'.$_page_row['display'].'</a>';
}
echo '</div>';
} else {
echo "<table width='100%' border=0 cellpadding=0 cellspacing=0><tr align='center'><td height=100>오늘 열람하신 게시물 없음</td></tr></table>";
}
?>
</form>
답변을 작성하시기 전에 로그인 해주세요.