묻고답하기

외부페이지는 

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

        <link rel="stylesheet" href="./css/list.css">
        <style>
         a:link {
            text-decoration: none;
           color: 000100;
           }
           a:visited {
            text-decoration: none;
           color: 000100;
           }
           a:hover {
            background-color: #FFFFFFF;
           }
           a:active {
            text-decoration: underline;
           background-color: #FFFFFFF;
           }
        </style>
    <?
    include "./common/db_connect.inc";
    #########################################################################
    # LIST 설정
    # 1. 한 페이지에 보여질 게시물의 수
    $page_size = $_POST['page_size'];//or $_POST['page_size'];
    if(!$page_size) $page_size = 10;

    # 2. 페이지 나누기에 표시될 페이지의 수

    $page_list_size = 10;

    #########################################################################

    if (!$no || $no < 0) $no=0; //$no 값이 안넘어 오거나 잘못된(음수)값이 넘어오는 경우 0으로 처리

    #########################################################################

    // 데이터베이스에서 페이지의 첫번째 글($no)부터 $page_size 만큼의 글을 가져온다.
    $list_str="select * from wellphonecu ORDER by num desc limit $no,$page_size";
    $list_qry=mysql_query($list_str);


    // 총 게시물 수 를 구한다.
    // count 를 통해 구할 수 있는데 count(항목) 과 같은 방법으로 사용한다. * 는 모든 항목을 뜻한다.
    // 총 해당 항목의 값을 가지는 게시물의 개수가 얼마인가를 묻는것이다.
    // 따라서 전체 글수가 된다. count(id) 와 같은 방법도 가능하지만 이례적으로 count(*)가 조금 빠르다. 
    // 일반적으로는 * 가 느리다.

    $result_count=mysql_query("select count(*) from wellphonecu");
    $result_row=mysql_fetch_row($result_count);
    $total_row = $result_row[0]; 
    //결과의 첫번째 열이 count(*) 의 결과다.

    if ($total_row <= 0) $total_row = 0; // 총게시물의 값이 없거나 할경우 기본값으로 세팅

    $total_page = floor(($total_row - 1) / $page_size); // 총게시물을 페이지 사이즈로 나눈뒤 내림을 한다.

    # 총페이지는 총 게시물의 수를 $page_size 로 나누면 알수있다.
    # 총페이지는 총 게시물의 수를 $page_size 로 나누면 알수있다.
    # 총 게시물이 12개(1을 빼서 11이된다)이고 페이지 사이즈가 10이라면 결과는 1.1 이 나올것이다.
    # 1.1 라는 페이지수는 한 페이지를 다 표시하고도 글이 더 남아있다는 뜻이다.
    # 따라서 실제의 페이지수는 2가된다. 한 페이지는 2개의 글만 표시될것이다.
    # 그러나 내림을 해주는 이유는 페이지수가 0부터 시작하기 때문이다. 따라서 1은 두번째 페이지이다.
    # 총 게시물에 1을 빼주는 이유는 10페이지가 되면 10/10 = 1 이기 때문이다.
    # 앞에서도 말했지만 1은 2번째 페이지를 뜻한다.
    # 그러나 총게시물이 10개인 경우 한페이지에 모두 출력이 되어야 한다.
    # 그래서 1을 빼서 10개인 경우 (10-1) / 10 = 0.9 로 한페이지에 출력하게 한다.
    # 글이 0개가 있는 경우는 결과가 -1 이 되지만 -1은 무시된다.
    # ( floor 는 내림을 하는 수학함수이다.)
    #########################################################################
    # 현재 페이지 계산

    $current_page = floor($no/$page_size);

    # $no 을 통해서 페이지의 첫번째 글이 몇번째 글인지 전달된다.
    # 따라서 페이지 사이즈로 나누면 현재가 몇번째 페이지인지 알수있다.
    # $no 이 10이고 페이지사이즈가 10 이라면 결과는 1이다. 앞서 페이지는 0부터 시작이라고 했으니 두번째 페이지임을 나타낸다.
    # 그렇다면 $no 이 11이라면 1.1 이 되어버린다. 11번째 글도 두번째 페이지에 존재하므로 0.1은 무의미하니 버린다.
    # 그런데 $no 이란 값이 $page_size 만큼씩 증가되는 값이기때문에 (0,10,20,30 과 같은 등차수열) 내림을 하는것 또한 무의미하다.
    # 그러나 내림을 하는 이유는 $no 값에 11과 같은 값이 들어와도 제대로 출력되기를 바라는 마음에서 해놓은것이다.
    ?>

        <table class='list'>
            <thead>
                <tr>
                    <th colspan='4'><h2>매입신청내역</h2></th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <th align='center' width='80'>번호</th>
                    <th align='center' width='300'>제목</th>
                    <th align='center' width='200'>신청자</th>
                    <th align='center' width='200'>날짜</th>
                </tr>
            <?
            while($row=mysql_fetch_array($list_qry)){
            ?>    <tr>
                    <td align='center'><?=$row[num]?></td>
                    <td align='left'><a href="cu_view_check.php?num=<?=$row[num]?>" target="_top"><?=$row[user_name]?>님의 <?=$row[model]?> 판매신청 입니다.</a></td>
                    <td align='center'><?=$row[user_name]?></td>
                    <td align='center'><?=$row[wdate]?></td>
                </tr>
            <?
            }
            ?>

                <tr>
                    <td colspan='4' align='center'>
                    <?
                    $start_page = (int)($current_page / $page_list_size) * $page_list_size;

                    #현재 페이지를 페이지 리스트 수로 나누면 현재 페이지가 몇번째 페이지리스트에 있는지 알게된다.
                    # 이또한 0을 기준으로 하기에 형변환(타입 캐스팅)을 해주었다.
                    # 형변환은 앞 강좌에서 배웠지만 위의 나누어지는 수가 1.2와 같이 유리수로 표시되기때문에
                    # int(정수) 형으로 형변환을 하게되면 소수점자리가 사라지게 된다.
                    # 즉, 위에서 사용한 floor 랑 같은 효과를 하게 되는 것이다. 
                    # 여기에 floor 함수를 취하거나 위의 floor 를 형변환을 해도 상관없다.

                    # 페이지 리스트의 마지막 페이지가 몇번째 페이지인지 구하는 부분이다.
                    $end_page = $start_page + $page_list_size - 1;
                    if ($total_page < $end_page) $end_page = $total_page;

                    # 보여주는 페이지 리스트중에서 마지막 페이지가 되는 경우는 두가지이다.
                    # 1. 페이지가 페이지리스트 크기보다 더 많이 남아있을때 
                    # 10개씩 뿌려주는데 총 11페이지가 존재한다면 11페이지는 두번째 목록페이지에 뿌려진다.
                    # 그렇다면 마지막 페이지 리스트는 10페이지 즉, 첫번째 페이지 + 9 번째 페이지이다.
                    # 2. 10개씩 뿌려주는데 5페이지 밖에 없다면?
                    # 마지막 리스트 페이지는 5 페이지가 된다.

                    #########################################################################
                    # 이전 페이지 리스트 보여주기
                    # 페이지 리스트가 10인데 13번째 페이지에 있다면 두번째 목록페이지를 보고 있는것이다.
                    # 이전 목록페이지로 가고 싶을 때 사용한다.

                    # 이전 페이지 리스트가 필요할때는 페이지 리스트의 첫 페이지가 페이지 리스트 수보다 클때다.
                    # 페이지가 적어도 페이지 리스트 수보다는 커야 이전 페이지 리스트가 존재할테니까 말이다.
                    # 페이지 리스트의 수가 10인데 총 5페이지밖에 없다면 이전 페이지 리스트는 존재하지 않는다.
                    if ($start_page >= $page_list_size) {

                        # 이전 페이지 리스트값은 첫 번째 페이지에서 한 페이지 감소하면 된다.
                        # $page_size 를 곱해주는 이유는 글번호로 표시하기 위해서이다. 
                        $prev_list = ($start_page - 1)*$page_size;
                        echo  "<a href=\"$PHP_SELF?no=$prev_list\">◀</a>\n";
                    }

                    # 페이지 리스트를 출력
                    for ($i=$start_page;$i <= $end_page;$i++) {

                    $page=$page_size*$i; // 페이지값을 no 값으로 변환.
                    $page_num = $i+1; // 실제 페이지 값이 0부터 시작하므로 표시할때는 1을 더해준다. 페이지 0 -> 1
                        
                        if ($no!=$page){ //현재 페이지가 아닐 경우만 링크를 표시
                            echo "<a href=\"$PHP_SELF?no=$page\">";
                         }
                        
                        echo " <b>$page_num</b> "; //페이지를 표시
                        
                        if ($no!=$page){
                            echo "</a>";
                        }

                    }
                    # 다음 페이지 리스트가 필요할때는 총 페이지가 마지막 리스트보다 클 때이다.
                    # 리스트를 다 뿌리고도 더 뿌려줄 페이지가 남았을때 다음 버튼이 필요할 것이다.

                    if($total_page > $end_page){
                        # 다음 페이지 리스트는 마지막 리스트 페이지보다 한 페이지 증가하면 된다.
                        $next_list = ($end_page + 1)* $page_size;
                        echo "<a href=$PHP_SELF?no=$next_list></a><p>";
                    }
                    ?>
                    </td>
                </tr>
            </tbody>
        </table>

 

 

이런 소스인데....다른외부페이지는 다 괜찮으나 이 페이지만 적용하면 레이아웃 위로 올라가버립니다...

뭐가 문제 인가요?

태그 연관 글
  1. [2015/08/04] 묻고답하기 외부페이지에 적용된 게시판 페이징시 레이아웃이 빠집니다. by 샤넬4da3b *1
  2. [2015/08/04] 묻고답하기 외부게시판 페이징 레이아웃 적용문제 by 샤넬4da3b *1
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
댑펑 xe 내부에서 php의 SERVER 함수가 사용안되는 것 [2] 2015.11.06 by 댑펑
마래바 미디어위키, 바이너리 저장을 UTF-8 저장으로 바꾸면?  
전갈자리남 xpresseditor 커서 문제 [1] 2015.11.06 by 피코스스
자자게이 비밀글 작성시 갤러리 게시판에서 비회원에게 썸네일 안나오는 문제해결??  
피요 복사한 특정 게시판이 삭제가 안되네요  
JAYLEEKOREA 게시판 삭제가 안됩니다~ㅠㅜ [2] file 2015.11.06 by JAYLEEKOREA
tui0561f 사이트 복사관련 질문드립니다.  
뭐로할까 도와주세요ㅠ.ㅠ [1] 2015.11.06 by 피코스스
TAEYONG2 문의합니다 [4] 2015.11.06 by 피코스스
주시제 Board DX 본문 입력을 없애는 방법 알 수 있을까요?  
동산바치 관리자 모드로 게시판 제목 다국어 입력이 안되네요 file  
LAMB 수정일 기준의 방식을 변경하고 싶습니다 [5] 2015.11.05 by 규르
nano 최고 관리자 권한 유저는 글 작성이 안됩니다. (임시저장 가능) [4] 2015.11.05 by 친절한깡패
아쿠아d3033 확장변수 불러오기 시에  
난다여~ Permission denied to access property "toString" 오류  
지완이 xe 느려짐 현상에 대해 질문 드립니다. [2] 2015.11.05 by 꾸링
샤넬4da3b 외부페이지가 레이아웃 바깥으로 튑니다. [1] 2015.11.05 by 오뎅궁물
디디다 로그인이 안되요 ㅠㅠ [1] 2015.11.05 by 제주향이네귤나라
K모씨 외부페이지와 일반페이지의 테이블 높이 2px 차이 발생 ? [1] file 2015.11.05 by Double'U'
친절한깡패 컨텐츠위젯 내용직접추가 문제  
TAEYONG2 질문좀하겠습니다 [2] 2015.11.05 by 가브리엘조
김쪼도사 모바일 스킨에서 메뉴 호출이 안되는 문제  
JAYLEEKOREA 이 게시판 좀 알려주세요~ [2] file 2015.11.05 by JAYLEEKOREA
해운대살고싶다 클라우드플레어 질문좀 캐쉬설정하는거 [1] 2015.11.05 by AJKJ
불꽃남자cc4e1 게시판 분류별(카테고리)로 설명 넣기 file  
불꽃남자cc4e1 이미지 팝업 방법  
mc뷰 누리고 쇼핑몰을 사용중입니다. 하나만 질문하겠습니다.  
현욱 안녕하세요 게시판관련하여 질문드립니다 file  
tonyhan xpress engine 설치하는데 DB 에서 진행이 안됩니다 [2] file 2015.11.04 by tonyhan
디자이너29270 게시판 파일첨부 클릭해도 반응이 [1] 2015.11.04 by 수용맘~*