페이지 처리 채택완료

제가 관리하는 다른 사이트에서 글을 가져와서 리스트로 뿌려주려 합니다.

게시글은 잘 가져와지는데 페이징 처리가 안되네요.

10개씩 끈어서 페이징 처리를 하려고 하는데 20개는 끈어지는데

페이징을 어찌해야할지요 ㅠㅠ

 

Copy
<?php
 
            /* Set to UTF-8 Encoding */
            mysqli_query($conn, 'set session character_set_connection=utf8;');
            mysqli_query($conn, 'set session character_set_results=utf8;');
            mysqli_query($conn, 'set session character_set_client=utf8;');
             
            /* Load data */
            $query = 'SELECT * FROM g5_write_estimate ORDER BY wr_datetime DESC Limit 20';
            $result = mysqli_query($conn, $query);
 
     echo '<table><tr>' .
                '<td>No</td>
     <td>담당자</td>
     <td>전화번호</td>
     <td>클라이언트</td>
     <td>날짜</td>' .
                '</tr>';
            while( $row = mysqli_fetch_array($result) ) {
                echo '<tr><td>' . ++ $i . '</td>' .
                     '<td>' . $row['wr_subject'] . '</td>' .
      '<td>' . $row['wr_4'] . '</td>' .
                     '<td>' . $row['wr_name'] . '</td>' .
                     '<td>' . $row['wr_datetime'] . '</td></tr>';
            }
 
            echo '</table>';
            mysqli_close($conn);
   
        ?>

답변 2개

채택된 답변
+20 포인트

페이지네이션은 구성하실려면, 아래와 같이 해주세요^^
--------------------------
이렇게 총갯수를 구하고,
'SELECT COUNT(*) AS cnt FROM g5_write_estimate'
$total_count = $row['cnt']; //데이터 갯수
--------------------------

페이지를 계산한뒤
$rows = 10;  //한페이지에 나올 데이터개수
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
--------------------------

해당 페이지의 데이터들을 가져옵니다.
'SELECT * FROM g5_write_estimate ORDER BY wr_datetime DESC Limit $from_record, $rows'

--------------------------

$total_page로 페이지 구성하시고, 페이지네이션에는 &page=페이지숫자

<a href="현재페이지.php?page=3">3</a>

GET 형식으로 넣어주시구요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

알려주신데로 했는데 게시글 안불러와지네요 ㅜㅜ
디비접속은 잘되고 있구요

<?php

/* Set to UTF-8 Encoding */
mysqli_query($conn, 'set session character_set_connection=utf8;');
mysqli_query($conn, 'set session character_set_results=utf8;');
mysqli_query($conn, 'set session character_set_client=utf8;');

$query = 'SELECT COUNT(*) AS cnt FROM g5_write_estimate'
$total_count = $row['cnt']; //데이터 갯수

$rows = 10; //한페이지에 나올 데이터개수
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

/* Load data */
$query = 'SELECT * FROM g5_write_estimate ORDER BY wr_datetime DESC Limit $from_record, $rows';
$result = mysqli_query($conn, $query);

echo '<table><tr>' .
'<td>No</td>
<td>담당자</td>
<td>전화번호</td>
<td>클라이언트</td>
<td>날짜</td>' .
'</tr>';
while( $row = mysqli_fetch_array($result) ) {
echo '<tr><td>' . ++ $i . '</td>' .
'<td>' . $row['wr_subject'] . '</td>' .
'<td>' . $row['wr_4'] . '</td>' .
'<td>' . $row['wr_name'] . '</td>' .
'<td>' . $row['wr_datetime'] . '</td></tr>';
}

echo '</table>';

?>
$query 쿼리변수만 만드셨네요.
mysqli_query()를 써본지 너무 오래되서 이렇게 하는게 맞나요?ㅎㅎ;;

$query = mysqli_query($conn, 'SELECT COUNT(*) AS cnt FROM g5_write_estimate');
$row = mysqli_fetch_array($query);
$total_count = $row['cnt']; //데이터 갯수
역시 안되네요 ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

현재 보여주신 소스코드에는 페이지에 대한 내용이 없습니다.

혹시, 쿼리문에 20을 10으로 바꿔보세요

$query = 'SELECT * FROM g5_write_estimate ORDER BY wr_datetime DESC Limit 20';

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

페이지에 관한 소스를 못만들겠단거죠 ㅜㅜ
20을 10으로 함 10개야 나오죠;
관리하는 다른 사이트도 그누보드5예요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고