
<button class="btn btn-success btn-sm btn_board_view" data-bcode="<?= $row["bcode"] ?>">보기</button>
// 해당 게시판 이동버튼
const btn_board_views = document.querySelectorAll(".btn_board_view")
btn_board_views.forEach((box) => {
box.addEventListener("click", () => {
const bcode = box.dataset.bcode
location.href = "../board.php?bcode=" + bcode
})
})
게시판 코드를 사용하여 해당 페이지로 이동하기 때문에 쿼리 스트링을 추가해 줬습니다.

<?php
include "inc/common.php";
include "inc/dbconfig.php";
// 게시판 목록 불러오기
include "inc/boardmanage.php";
$boardm = new BoardManage($db);
$boardArr = $boardm->list();
$bcode = isset($_GET["bcode"]) && $_GET["bcode"] != "" ? $_GET["bcode"] : "";
if ($bcode == "") {
die('
<script>
alert("게시판 코드가 누락되었습니다.")
history.back()
</script>');
}
$board_name = $boardm->getBoardName($bcode);
$board = new Board($db);
$js_array = ['js/board.js'];
$g_title = $board_name;
$menu_code = "board";
include "inc_header.php";
?>
<main class="w-75 mx-auto border rounded-2 p-5">
<h1 class="text-center"><?= $board_name; ?></h1>
<table class="table table-striped">
<tr>
<th>번호</th>
<th>제목</th>
<th>이름</th>
<th>날짜</th>
<th>조회 수</th>
</tr>
<tr>
<td>1</td>
<td>테스트</td>
<td>이태현</td>
<td>08-26</td>
<td>10</td>
</tr>
</table>
<div class="d-flex justify-content-between align-items-start">
<nav aria-label="Page navigation example">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>
</nav>
<button class="btn btn-primary" id="btn_write">글쓰기</button>
</div>
</main>
<?php
include "inc_footer.php";
?>
// 게시판 목록
public function list()
{
$sql = "SELECT idx, name, bcode, btype, cnt, DATE_FORMAT(create_at,'%Y-%m-%d %H-%i') AS create_at
FROM board_manage
ORDER BY idx ASC";
$stmt = $this->conn->prepare($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
return $stmt->fetchAll();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js" integrity="sha384-ndDqU0Gzau9qJ1lfW4pNLlhNTkCfHzAVBReH9diLvGRem5+R9g2FzA8ZGN954O5Q" crossorigin="anonymous"></script>
<?php
if (isset($js_array)) {
foreach ($js_array as $var) {
echo "<script src='" . $var . "?v=" . date("YmdHis") . "'></script>";
}
} ?>
<title><?= (isset($g_title) && $g_title != "" ? $g_title : "해커들의 놀이터"); ?></title>
</head>
<body>
<div class="container">
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
<a href="index.php" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto link-body-emphasis text-decoration-none">
<img src="images/logo.svg" alt="" class="me-2" style="width: 2rem;">
<span class="fs-4">해커들의 놀이터</span>
</a>
<ul class="nav nav-pills">
<?php if (isset($ss_id) && $ss_id != "") {
// 로그인
?>
<li class="nav-item">
<a href="index.php" class="nav-link <?= $menu_code == "home" ? "active" : ""; ?>">Home</a>
</li>
<li class="nav-item">
<a href="company.php" class="nav-link <?= $menu_code == "company" ? "active" : ""; ?>">소개</a>
</li>
<?php if (isset($ss_level) && $ss_level == 10) {
?>
<li class="nav-item">
<a href="admin/" class="nav-link <?= $menu_code == "admin" ? "active" : ""; ?>">admin</a>
</li>
<?php
} else { ?>
<li class="nav-item">
<a href="mypage.php" class="nav-link <?= $menu_code == "mypage" ? "active" : ""; ?>">My Page</a>
</li>
<?php } ?>
<?php
foreach ($boardArr as $row) {
echo '<li class="nav-item"><a href="board.php?bcode=' . $row['bcode'] . '" class="nav-link';
if (isset($_GET['bcode']) && $_GET['bcode'] == $row['bcode']) {
echo ' active';
}
echo '">' . $row['name'] . '</a>
</li>';
}
?>
<li class="nav-item">
<a href="pg/logout.php" class="nav-link <?= $menu_code == "login" ? "active" : ""; ?>">로그아웃</a>
</li>
<?php
} else {
// 비 로그인
?>
<li class="nav-item">
<a href="index.php" class="nav-link <?= $menu_code == "home" ? "active" : ""; ?>">Home</a>
</li>
<li class="nav-item">
<a href="company.php" class="nav-link <?= $menu_code == "company" ? "active" : ""; ?>">소개</a>
</li>
<li class="nav-item">
<a href="stipulation.php" class="nav-link <?= $menu_code == "member" ? "active" : ""; ?>">회원가입</a>
</li>
<li class="nav-item">
<a href="board.php" class="nav-link <?= $menu_code == "board" ? "active" : ""; ?>">게시판</a>
</li>
<li class="nav-item">
<a href="login.php" class="nav-link <?= $menu_code == "login" ? "active" : ""; ?>">로그인</a>
</li>
<?php
}
?>
</ul>
</header>




<?php
foreach ($boardArr as $row) {
echo '<li class="nav-item"><a href="board.php?bcode=' . $row['bcode'] . '" class="nav-link';
if (isset($_GET['bcode']) && $_GET['bcode'] == $row['bcode']) {
echo ' active';
}
echo '">' . $row['name'] . '</a>
</li>';
}
?>
DB에서 게시판 코드를 불러와서 해당 페이지로 이동해 주는 모습
// 게시판 코드로 게시판 명 가져오기
public function getBoardName($bcode)
{
$sql = "SELECT name FROM board_manage WHERE bcode=:bcode";
$stmt = $this->conn->prepare($sql);
$stmt->bindParam(":bcode", $bcode);
$stmt->setFetchMode(PDO::FETCH_COLUMN, 0);
$stmt->execute();
return $stmt->fetch();
}
다음 시간에는 게시글 작성 부분을 해보겠습니다.
감사합니다.