list페이지 질문좀 드리겠습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
list페이지 질문좀 드리겠습니다.

QA

list페이지 질문좀 드리겠습니다.

본문

안녕하세요 그누보드에서 도움을 주신 웅프님 덕에 많은 도움 이되었습니당

우선 도움주셔서 감사합니다..

연락이 불가라 쪽지는 드렸습니다.

 

 

질문내용

list페이지에서 

<?php echo $row['name'] ?>

<?php echo $row['subject']; ?>

여분필드 제외하고 다 노출이 안되는문제

그리고 a링크 클릭시 뷰페이지로 안넘어가는데 

어디부분을 수정해야할까요~?

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
 include_once(G5_THEME_PATH.'/head1.php');
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
<div class="le">
    <ul>
        <h2><img src="/img/logo.png"></h2>
        <li><a href="/bbs/board.php?bo_table=crm">메인</a></li>
        <li><a href="/bbs/board.php?bo_table=crm">영업관리</a></li>
        <li><a href="/bbs/write.php?bo_table=crm">고객등록</a></li>
        <li><a href="">영업공지</a></li>
        <li><a href="">알림</a></li>
    </ul>
</div>
<div class="ri">
<?php
    $sql_wr8 = "SELECT DISTINCT wr_8 FROM {$g5['write_prefix']}{$bo_table} WHERE wr_8 IS NOT NULL AND wr_8 != ''";
    $result_wr8 = sql_query($sql_wr8);
    $wr8_options = [];
    while ($row = sql_fetch_array($result_wr8)) {
        $wr8_options[] = $row['wr_8'];
    }
    $sql_wr9 = "SELECT DISTINCT wr_9 FROM {$g5['write_prefix']}{$bo_table} WHERE wr_9 IS NOT NULL AND wr_9 != ''";
    $result_wr9 = sql_query($sql_wr9);
    $wr9_options = [];
    while ($row = sql_fetch_array($result_wr9)) {
        $wr9_options[] = $row['wr_9'];
    }
    // wr_8과 wr_9 조건 필터링
    $sql = "SELECT * FROM {$g5['write_prefix']}{$bo_table} WHERE wr_is_comment = 0"; // 댓글은 제외
    // 첫 번째 필터링 조건: wr_8 (stx)
    if (!empty($_GET['stx'])) {
        $sql .= " AND wr_8 = '" . sql_escape_string($_GET['stx']) . "'";
    }
    // 두 번째 필터링 조건: wr_9 (wr_9)
    if (!empty($_GET['wr_9'])) {
        $sql .= " AND wr_9 = '" . sql_escape_string($_GET['wr_9']) . "'";
    }
    // 게시물 정렬 기준 설정
    $sql .= " ORDER BY wr_id DESC";
    // 쿼리 실행
    $result = sql_query($sql);
    ?>
    <form name="fsearch" method="get">
        <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
        <input type="hidden" name="sca" value="<?php echo $sca ?>">
        <input type="hidden" name="sop" value="and">
        <input type="hidden" name="sfl" value="wr_8">
        <!-- wr_8의 값을 기반으로 동적으로 생성된 옵션 -->
        <select name="stx">
            <option value="">전체</option>
            <?php foreach ($wr8_options as $wr8): ?>
                <option value="<?php echo htmlspecialchars($wr8); ?>" <?php echo ($_GET['stx'] == $wr8) ? 'selected' : ''; ?>>
                    <?php echo htmlspecialchars($wr8); ?>
                </option>
            <?php endforeach; ?>
        </select>
        <!-- wr_9의 값을 기반으로 동적으로 생성된 옵션 -->
        <select name="wr_9">
            <option value="">전체</option>
            <?php foreach ($wr9_options as $wr9): ?>
                <option value="<?php echo htmlspecialchars($wr9); ?>" <?php echo ($_GET['wr_9'] == $wr9) ? 'selected' : ''; ?>>
                    <?php echo htmlspecialchars($wr9); ?>
                </option>
            <?php endforeach; ?>
        </select>
        <button type="submit" value="검색" class="sch_btn">
            <i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span>
        </button>
    </form>
    
    <!-- 게시판 목록 시작 { -->
    <div id="bo_list" style="width:<?php echo $width; ?>">
        <!-- 게시판 카테고리 시작 { -->
        <?php if ($is_category) { ?>
        <nav id="bo_cate">
            <h2><?php echo $board['bo_subject'] ?> 카테고리</h2>
            <ul id="bo_cate_ul">
                <?php echo $category_option ?>
            </ul>
        </nav>
        <?php } ?>
        <!-- } 게시판 카테고리 끝 -->
         <form name="fboardlist" id="fboardlist" action="<?php echo G5_BBS_URL; ?>/board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
    
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="sw" value="">
            <!-- 게시판 페이지 정보 및 버튼 시작 { -->
            <div id="bo_btn_top">
                <div id="bo_list_total">
                    <span>Total <?php echo number_format($total_count) ?>건</span>
                    <?php echo $page ?> 페이지
                </div>
            </div>
            <!-- } 게시판 페이지 정보 및 버튼 끝 -->
            <div class="tbl_head01 tbl_wrap">
                <tr>
                    <?php if ($is_checkbox) { ?>
                    <th scope="col" class="all_chk chk_box">
                        <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
                        <label for="chkall">
                            <span></span>
                            <b class="sound_only">현재 페이지 게시물 전체선택</b>
                        </label>
                    </th>
                    <?php } ?>
                </tr>
                <?php
                // 게시물 리스트 출력
                while ($row = sql_fetch_array($result)) {
                    if ($row['is_notice']) {
                        $lt_class = "bo_notice";
                    } else {
                        $lt_class = "";
                    }
                ?>
                <li class="<?php echo $lt_class ?>">
                    <div class="box">
                        <a href="<?php echo $row['href'] ?>">
                           <h1><?php echo $row['subject']; ?></h1>
                            <span>신민철과장 / 영업부</span>
                            <p>
                                <i class="fa fa-user-o" aria-hidden="true" style="float: left; margin-top: 3px; margin-right: 5px;"></i>
                                <?php echo $row['name'] ?>
                                <span class="sound_only">댓글</span>
                                <span class="cnt_cmt" style="float: right;">
                                    <i class="fa fa-comment" aria-hidden="true"></i>
                                    <?php
                                    $comment_sql = "SELECT COUNT(*) AS comment_count FROM {$g5['write_prefix']}{$bo_table} WHERE wr_parent = '{$row['wr_id']}' AND wr_is_comment = 1";
                                    $comment_result = sql_query($comment_sql);
                                    $comment_row = sql_fetch_array($comment_result);
                                    echo $comment_row['comment_count'];
                                    ?>
                                </span>
                            </p>
                            <div class="bo">
                                <?php echo $row['wr_8'] ?> / <?php echo $row['wr_9'] ?> / <?php echo $row['wr_10'] ?>
                            </div>
                        </a>
                    </div>
                </li>
                <?php } ?>
                <?php if (count($list) == 0) { echo '<li><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></li>'; } ?>
            </div>
            <!-- 페이지 -->
            <?php echo $write_pages; ?>
            <!-- 페이지 -->
        </form>
        </div>
</div>
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
    var f = document.fboardlist;
    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]")
            f.elements[i].checked = sw;
    }
}
function fboardlist_submit(f) {
    var chk_count = 0;
    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
            chk_count++;
    }
    if (!chk_count) {
        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }
    if(document.pressed == "선택복사") {
        select_copy("copy");
        return;
    }
    if(document.pressed == "선택이동") {
        select_copy("move");
        return;
    }
    if(document.pressed == "선택삭제") {
        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
            return false;
        f.removeAttribute("target");
        f.action = g5_bbs_url+"/board_list_update.php";
    }
    return true;
}
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
    var f = document.fboardlist;
    if (sw == "copy")
        str = "복사";
    else
        str = "이동";
    var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
    f.sw.value = sw;
    f.target = "move";
    f.action = g5_bbs_url+"/move.php";
    f.submit();
}
// 게시판 리스트 관리자 옵션
jQuery(function($){
    $(".btn_more_opt.is_list_btn").on("click", function(e) {
        e.stopPropagation();
        $(".more_opt.is_list_btn").toggle();
    });
    $(document).on("click", function (e) {
        if(!$(e.target).closest('.is_list_btn').length) {
            $(".more_opt.is_list_btn").hide();
        }
    });
});
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
<style>
 #hd {
        padding: 22px 20px;display: none;
    }
.le {   position: fixed;
    z-index: 999;
    top: 0;
    bottom: 0;
    left: 0;
    background: #373B48;
    width: 13%;
}
.le ul {}
.le ul h2{text-align: center;}
.le ul img {height: 80px;padding: 15px 0px;}
.le li {width: 100%;padding:15px;height: 50px;color: #fff;}
.le li a {color: #fff;}
.le li a:hover {width: 100%; width:100%;background: #565C6D;}
.ri {  width: 85%;position: fixed;left: 14%;}
.ri .co {background:#fff;height: 100px;
    padding: 10px;border-radius: 6px;margin-top: 20px;}
.ri li{width: 33.3%; padding: 8px; float: left; }
.ri li .box{background: #fff;border-radius: 6px;padding: 10px; }
.ri li .bo{background: #f9f9f9;  color: #999;font-size: 12px;padding: 5px 3px; letter-spacing: 0.7px; }
.ri li span{color: #888;font-size: 13px;}
.ri li h1{font-size: 20px;color: #333;}
.ri li p {padding-top: 15px;    padding-bottom: 10px;}
body {background:#f3f5f6;}
.ri li a{ text-decoration-line: none;}
</style>    
 

 

이 질문에 댓글 쓰기 :

답변 3

wr_1, wr_2, wr_8 셀렉트박스를 각각 선택하여 검색하려면,

GET 요청을 통해 여러 값을 서버로 전달하고, 전달된 값들을 조건문으로 필터링하여

해당 게시물만 노출되도록 쿼리를 수정해야 합니다.

또한 게시물 목록에서 제목과 작성자(subject, name)가 노출되지 않는 문제는

쿼리 결과의 컬럼명을 올바르게 확인해야 하며,

클릭 시 상세 페이지로 넘어가지 않음은 href 값이 제대로 생성되었는지 확인해야 합니다.

- - 수정 예시 - -

<form name="fsearch" method="get">

<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">

<input type="hidden" name="sca" value="<?php echo $sca ?>">

<input type="hidden" name="sop" value="and">

 

<!-- wr_1 셀렉트박스 -->

<select name="wr_1">

<option value="">wr_1 선택</option>

<option value="value1" <?php echo ($_GET['wr_1'] == 'value1') ? 'selected' : ''; ?>>Value 1</option>

<option value="value2" <?php echo ($_GET['wr_1'] == 'value2') ? 'selected' : ''; ?>>Value 2</option>

</select>

 

<!-- wr_2 셀렉트박스 -->

<select name="wr_2">

<option value="">wr_2 선택</option>

<option value="value3" <?php echo ($_GET['wr_2'] == 'value3') ? 'selected' : ''; ?>>Value 3</option>

<option value="value4" <?php echo ($_GET['wr_2'] == 'value4') ? 'selected' : ''; ?>>Value 4</option>

</select>

 

<!-- wr_8 셀렉트박스 -->

<select name="wr_8">

<option value="">wr_8 선택</option>

<?php foreach ($wr8_options as $wr8): ?>

<option value="<?php echo htmlspecialchars($wr8); ?>" <?php echo ($_GET['wr_8'] == $wr8) ? 'selected' : ''; ?>>

<?php echo htmlspecialchars($wr8); ?>

</option>

<?php endforeach; ?>

</select>

 

<button type="submit" value="검색" class="sch_btn">

<i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span>

</button>

</form>

 

<?php

// SQL 조건 추가

$sql = "SELECT * FROM {$g5['write_prefix']}{$bo_table} WHERE wr_is_comment = 0";

if (!empty($_GET['wr_1'])) {

$sql .= " AND wr_1 = '" . sql_escape_string($_GET['wr_1']) . "'";

}

if (!empty($_GET['wr_2'])) {

$sql .= " AND wr_2 = '" . sql_escape_string($_GET['wr_2']) . "'";

}

if (!empty($_GET['wr_8'])) {

$sql .= " AND wr_8 = '" . sql_escape_string($_GET['wr_8']) . "'";

}

$sql .= " ORDER BY wr_id DESC";

 

$result = sql_query($sql);

 

// 게시물 리스트 출력

while ($row = sql_fetch_array($result)) {

$href = "/bbs/board.php?bo_table={$bo_table}&wr_id=" . $row['wr_id'];

?>

<li>

<a href="<?php echo $href; ?>">

<h1><?php echo htmlspecialchars($row['subject']); ?></h1>

<p><?php echo htmlspecialchars($row['name']); ?></p>

</a>

</li>

<?php

}

?>

. . .

1982090578_1736492214.3061.png

 

row 는 여기서 별더로 선언하는데 해당 조건에 부합되지 않아서 그렇습니다.

<pre><?php echo print_r($row); ?></pre>
이렇게  row 배열 채크 해보세요.

 


<?php echo $row['name'] ?>
<?php echo $row['subject']; ?>
<a href="<?php echo $row['href'] ?>">

를 아래처럼

<?php echo $row['wr_name'] ?>
<?php echo $row['wr_subject']; ?>
<a href="<?php echo "/bbs/board.php?bo_table=".$bo_table."&wr_id=".$row['wr_id']; ?>">

해보세요
답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT