[PHP] 관리자 페이지 만들기 - 2

2023. 12. 13. 12:39·Backend/PHP
💡 관리자 페이지에서 회원정보를 리스트로 확인하자!
페이징 부분은 나중에 확인하자!! 젤 마지막에

 

⭐️ 완성샷


🔴 list.php

<?php
include "../inc/admin_session.php";

/* DB 연결 */
include "../../inc/dbcon.php";

/* 쿼리 작성 */
$sql = "select * from members;";

/* 쿼리 전송 */
$result = mysqli_query($dbcon, $sql);

/* 결과 가져오기 */
// $array = mysqli_fetch_array($result); // for문
// $num = mysqli_num_rows($result);

/* paging : 전체 데이터 수 */
$num = mysqli_num_rows($result);

/* paging : 한 페이지 당 데이터 개수 */
$list_num = 5;

/* paging : 한 블럭 당 페이지 수 */
$page_num = 3;

/* paging : 현재 페이지 */
$page = isset($_GET["page"])? $_GET["page"] : 1;

/* paging : 전체 페이지 수 = 전체 데이터 / 페이지당 데이터 개수, ceil : 올림값, floor : 내림값, round : 반올림 */
$total_page = ceil($num / $list_num);
// echo "전체 페이지 수 : ".$total_page;

/* paging : 전체 블럭 수 = 전체 페이지 수 / 블럭 당 페이지 수 */
$total_block = ceil($total_page / $page_num);

/* paging : 현재 블럭 번호 = 현재 페이지 번호 / 블럭 당 페이지 수 */
$now_block = ceil($page / $page_num);

/* paging : 블럭 당 시작 페이지 번호 = (해당 글의 블럭번호 - 1) * 블럭당 페이지 수 + 1 */
$s_pageNum = ($now_block - 1) * $page_num + 1;
// 데이터가 0개인 경우
if($s_pageNum <= 0){
    $s_pageNum = 1;
};

/* paging : 블럭 당 마지막 페이지 번호 = 현재 블럭 번호 * 블럭 당 페이지 수 */
$e_pageNum = $now_block * $page_num;
// 마지막 번호가 전체 페이지 수를 넘지 않도록
if($e_pageNum > $total_page){
    $e_pageNum = $total_page;
};
?>

🟤 DB 가져오기

admin_sesion과 dbcon 둘 다 include 해야한다.

🟤 쿼리 작성

전체 데이터테이블에 있는 정보를 가져와야한다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>회원목록</title>
    <style type="text/css">
        body{font-size:16px}
        a{text-decoration:none;color:rgb(0, 132, 255)}
        a:hover{color:rgb(255, 153, 0)}
        table{width:1328px;border-collapse:collapse}
        td{padding:10px 15px;text-align:center}
        .title{border-top:3px solid #999;border-bottom:2px solid #999;background:#eee;font-weight:bold}
        .brd{border-bottom:1px solid #999}
        table a{text-decoration:none;color:#000;border:1px solid #333;display:inline-block;padding:3px 5px;font-size:12px;border-radius:5px}
        table a:hover{border:0 none;background:rgb(0, 132, 255);color:#fff}
    </style>
    <script type="text/javascript">
        function del_check(idx){
            var i = confirm("정말 삭제하시겠습니까?\n삭제한 아이디는 복원하실 수 없습니다.");

            if(i == true){
                // alert("delete.php?u_idx="+idx);
                location.href = "delete.php?u_idx="+idx;
            };
        };
    </script>
</head>
<body>
    <h2>* 관리자 페이지 *</h2>
    <p>"<?php echo $s_name; ?>"님, 안녕하세요.</p>
    <p>
        <a href="/website/admin/admin.php" class="bar">홈으로</a>
        <!-- <a href="../board/board_list.php">게시판 관리</a> -->
        <a href="#none" class="bar">게시판 관리</a>
        <a href="list.php" class="bar">회원 관리</a>
        <a href="../../login/logout.php">로그아웃</a>
    </p>
    <hr>
    <p>총 <?php echo $num; ?>명</p>
    <table>
        <tr class="title">
            <td>번호</td>
            <td>이름</td>
            <td>아이디</td>
            <td>생년월일</td>
            <td>주소</td>
            <td>이메일</td>
            <td>전화번호</td>
            <td>가입일</td>
            <td>수정</td>
            <td>삭제</td>
        </tr>

        <?php
        // for($i = 1; $i <= $num; $i++){
        /* $i = 1;
        while($array = mysqli_fetch_array($result)){ */

        /* paging : 시작 번호 = (현재 페이지 번호 - 1) * 페이지 당 보여질 데이터 수 */
        $start = ($page - 1) * $list_num;

        /* paging : 쿼리 작성 - limit 몇번부터, 몇개 */
        $sql = "select * from members limit $start, $list_num;";

        /* paging : 쿼리 전송 */
        $result = mysqli_query($dbcon, $sql);

        /* paging : 글번호 */
        $cnt = $start + 1;

        /* paging : 회원정보 가져오기(반복) */
        while($array = mysqli_fetch_array($result)){
        ?>
        <tr class="brd">
            <!-- <td><?php echo $i; ?></td> -->
            <td><?php echo $cnt; ?></td>
            <td><?php echo $array["u_name"]; ?></td>
            <td><?php echo $array["u_id"]; ?></td>
            <td><?php echo $array["birth"]; ?></td>
            <td><?php echo $array["postalCode"]." ".$array["add1"]." ".$array["add2"]; ?></td>
            <td><?php echo $array["email"]; ?></td>
            <td><?php echo $array["mobile"]; ?></td>
            <td><?php echo $array["reg_date"]; ?></td>
            <td><a href="edit.php?u_idx=<?php echo $array["idx"]; ?>">수정</a></td>
            <td><a href="#" onclick="del_check(<?php echo $array["idx"]; ?>)">삭제</a></td>
        </tr>
        <?php  
            /* $i++; */
            /* paging */
            $cnt++;
        }; 
        ?>
    </table>
    <p class="pager">

    <?php
    /* paging : 이전 페이지 */
    if($page <= 1){
    ?>
    <a href="list.php?page=1">이전</a>
    <?php } else{ ?>
    <a href="list.php?page=<?php echo ($page-1); ?>">이전</a>
    <?php };?>

    <?php
    /* pager : 페이지 번호 출력 */
    for($print_page = $s_pageNum; $print_page <= $e_pageNum; $print_page++){
    ?>
    <a href="list.php?page=<?php echo $print_page; ?>"><?php echo $print_page; ?></a>
    <?php };?>

    <?php
    /* paging : 다음 페이지 */
    if($page >= $total_page){
    ?>
    <a href="list.php?page=<?php echo $total_page; ?>">다음</a>
    <?php } else{ ?>
    <a href="list.php?page=<?php echo ($page+1); ?>">다음</a>
    <?php };?>

    </p>
</body>
</html>

🟠 회원정보 테이블에 출력하기

<p>총 <?php echo $num; ?>명</p>
<table>
  <tr class="title">
    <td>번호</td>
    <td>이름</td>
    <td>아이디</td>
    <td>생년월일</td>
    <td>주소</td>
    <td>이메일</td>
    <td>전화번호</td>
    <td>가입일</td>
    <td>수정</td>
    <td>삭제</td>
  </tr>
  <?php
// for($i = 1; $i <= $num; $i++){
/* $i = 1;
while($array = mysqli_fetch_array($result)){ */
/* paging : 시작 번호 = (현재 페이지 번호 - 1) * 페이지 당 보여질 데이터 수 */
$start = ($page - 1) * $list_num;

/* paging : 쿼리 작성 - limit 몇번부터, 몇개 */
$sql = "select * from members limit $start, $list_num;";

/* paging : 쿼리 전송 */
$result = mysqli_query($dbcon, $sql);

/* paging : 글번호 */
$cnt = $start + 1;

/* paging : 회원정보 가져오기(반복) */
while($array = mysqli_fetch_array($result)){
?>
<tr class="brd">
    <!-- <td><?php echo $i; ?></td> -->
    <td><?php echo $cnt; ?></td>
    <td><?php echo $array["u_name"]; ?></td>
    <td><?php echo $array["u_id"]; ?></td>
    <td><?php echo $array["birth"]; ?></td>
    <td><?php echo $array["postalCode"]." ".$array["add1"]." ".$array["add2"]; ?></td>
    <td><?php echo $array["email"]; ?></td>
    <td><?php echo $array["mobile"]; ?></td>
    <td><?php echo $array["reg_date"]; ?></td>
    <td><a href="edit.php?u_idx=<?php echo $array["idx"]; ?>">수정</a></td>
    <td><a href="#" onclick="del_check(<?php echo $array["idx"]; ?>)">삭제</a></td>
</tr>


<?php  
/* $i++; */
/* paging */
$cnt++;
}; 
?>
</table>

🟤 회원정보 출력

<tr class="brd">에 dbcon에서 가져온 정보를 array함수를 이용해서 각각 출력해준다.
cnt는 글 번호인데, 글번호 관련된 것은 다음에 설명

반응형
저작자표시 (새창열림)

'Backend > PHP' 카테고리의 다른 글

[PHP] 페이지네이션 (페이징) 만들기  (0) 2023.12.13
[PHP] 관리자 페이지 만들기 - 1  (0) 2023.12.13
[PHP] 회원탈퇴 페이지 만들기  (0) 2023.12.13
[PHP] 정보 수정 페이지 만들기  (0) 2023.12.11
[PHP] 로그인 페이지 만들기 - 2 (index, logout)  (0) 2023.12.11
'Backend/PHP' 카테고리의 다른 글
  • [PHP] 페이지네이션 (페이징) 만들기
  • [PHP] 관리자 페이지 만들기 - 1
  • [PHP] 회원탈퇴 페이지 만들기
  • [PHP] 정보 수정 페이지 만들기
전예방
전예방
  • 전예방
    예방이의 개발일기
    전예방
  • 전체
    오늘
    어제
    • All (125)
      • Info & Tip (2)
      • 유용한 사이트들 (5)
      • Mark Up & StyleSheet (23)
        • HTML (6)
        • CSS & SCSS (10)
        • 반응형 (6)
      • Frontend (66)
        • 전체 (10)
        • JavaScript & Jquery (18)
        • TypeScript (0)
        • React (26)
        • Next.js (3)
        • 성능최적화 (2)
        • 웹접근성 (2)
      • Backend (13)
        • Python (1)
        • JAVA (2)
        • node.js (0)
        • PHP (7)
        • 패키지매니저 (3)
      • Markdown (0)
      • SCM (1)
        • Git&Github (1)
        • SVN (0)
      • IDE (4)
        • VSCode (2)
        • IntelliJ (1)
        • Ecplise (1)
      • 취미생활 (3)
      • 정보처리기사 (2)
      • 코딩자율학습단 (5)
        • 12기 (파이썬) (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • velog
    • github
  • 공지사항

  • 인기 글

  • 태그

    swiper.js
    TypeScript
    관리자 페이지
    php
    코딩자율학습
    리액트
    코딩자율학습단
    React Swiper
    yarn berry
    반응형
    회원가입
    Chart.js
    react
    Admin
    나도코딩
    NPM
    frontend
    CSS
    파이썬
    Python
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
전예방
[PHP] 관리자 페이지 만들기 - 2
상단으로

티스토리툴바