테스트 사이트 - 개발 중인 베타 버전입니다

검색결과에 그룹이름 출력 과 반복 안 되도록 채택완료

더루차 2년 전 조회 1,230

어제 질문을 했었는데 https://sir.kr/g5_skin/1025">그누보드 - 전체검색 스킨입니다. > 그누보드5 스킨 (sir.kr) 이 스킨을

기본으로 전체검색 결과에 그룹이름이 나오도록 수정하고 싶은데

그룹이름 출력이 되지 않습니다

그리고 검색결과 도출하는 반복문 내에 thead가 있다보니 분류 자체도 반복되어 출력되고 있어 

수정하고자 반복문 위로 입력하면 테이블이 깨져 수정할 수가 없습니다 .. 도와주시면

감사하겠습니다!

$group['gr_subject'] 는 당연히 해보았구요 

</p>

<p>          <td class="group"> <?php

          $gr_id = $board['gr_id'];

          $gr = sql_query(" select gr_subject​ from g5_group where gr_id = '$gr_id' ");

          echo $gr['gr_subject'];?> </td>

구문 까지 사용했습니다 전체 소스가 필요할것 같아서 재 질문합니다!

</p>

<p><?php</p>

<p>if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가</p>

<p>include_once(G5_LIB_PATH.'/thumbnail.lib.php');//썸네일 라이브러리</p>

<p>include_once('./_common.php');</p>

<p> </p>

<p>?></p>

<p> </p>

<p><!-- 전체검색 시작 { --></p>

<p><link rel="stylesheet" href="<?php echo $search_skin_url ?>/style.css"></p>

<p> </p>

<p><form name="fsearch" onsubmit="return fsearch_submit(this);" method="get"></p>

<p>  <input type="hidden" name="srows" value="<?php echo $srows ?>"></p>

<p>  <fieldset id="sch_res_detail"></p>

<p>    <legend>상세검색</legend></p>

<p>    <?php echo $group_select ?></p>

<p>    <script>document.getElementById("gr_id").value = "<?php echo $gr_id ?>";</script></p>

<p>    <label for="sfl" class="sound_only">검색조건</label></p>

<p>    <select name="sfl" id="sfl"></p>

<p>      <option value="wr_subject||wr_content"<?php echo get_selected($_GET['sfl'], "wr_subject||wr_content") ?>>제목+내용</option></p>

<p>      <option value="wr_subject"<?php echo get_selected($_GET['sfl'], "wr_subject") ?>>제목</option></p>

<p>      <option value="wr_content"<?php echo get_selected($_GET['sfl'], "wr_content") ?>>내용</option></p>

<p>      <option value="mb_id"<?php echo get_selected($_GET['sfl'], "mb_id") ?>>회원아이디</option></p>

<p>      <option value="wr_name"<?php echo get_selected($_GET['sfl'], "wr_name") ?>>이름</option></p>

<p>    </select></p>

<p>    <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label></p>

<p>    <input type="text" name="stx" value="<?php echo $text_stx ?>" id="stx" required class="frm_input required" maxlength="20"></p>

<p>    <input type="submit" class="btn_submit" value="검색"></p>

<p>    <script></p>

<p>    function fsearch_submit(f)</p>

<p>    {</p>

<p>        if (f.stx.value.length < 2) {</p>

<p>            alert("검색어는 두글자 이상 입력하십시오.");</p>

<p>            f.stx.select();</p>

<p>            f.stx.focus();</p>

<p>            return false;</p>

<p>        }</p>

<p> </p>

<p>        // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.</p>

<p>        var cnt = 0;</p>

<p>        for (var i=0; i<f.stx.value.length; i++) {</p>

<p>            if (f.stx.value.charAt(i) == ' ')</p>

<p>                cnt++;</p>

<p>        }</p>

<p> </p>

<p>        if (cnt > 1) {</p>

<p>            alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");</p>

<p>            f.stx.select();</p>

<p>            f.stx.focus();</p>

<p>            return false;</p>

<p>        }</p>

<p>       </p>

<p>        f.action = "";</p>

<p>        return true;</p>

<p>    }</p>

<p>    </script></p>

<p>    <input type="radio" value="or" <?php echo ($sop == "or") ? "checked" : ""; ?> id="sop_or" name="sop"></p>

<p>    <label for="sop_or">OR</label></p>

<p>    <input type="radio" value="and" <?php echo ($sop == "and") ? "checked" : ""; ?> id="sop_and" name="sop"></p>

<p>    <label for="sop_and">AND</label></p>

<p>  </fieldset></p>

<p></form></p>

<p><div id="sch_result"></p>

<p>  <?php</p>

<p>    if ($stx) {</p>

<p>        if ($board_count) {</p>

<p>    ?></p>

<p>  <section id="sch_res_ov"></p>

<p>    <h2><?php echo $stx ?> 전체검색 결과</h2></p>

<p>    <dl></p>

<p>      <dt>게시판</dt></p>

<p>      <dd><strong style="color:<?php echo $config['cf_search_color'] ?>"><?php echo $board_count ?>개</strong></dd></p>

<p>      <dt>게시물</dt></p>

<p>      <dd><strong style="color:<?php echo $config['cf_search_color'] ?>"><?php echo number_format($total_count) ?>개</strong></dd></p>

<p>    </dl></p>

<p>    <p><?php echo number_format($page) ?>/<?php echo number_format($total_page) ?> 페이지 열람 중</p></p>

<p>  </section></p>

<p>  <?php</p>

<p>        }</p>

<p>    }</p>

<p>    ?></p>

<p>  <?php</p>

<p>    if ($stx) {</p>

<p>        if (!$board_count) {</p>

<p>     ?></p>

<p>  <div id="sch_res_no">검색 결과가 없습니다.</div></p>

<p>  <?php } }  ?></p>

<p>  <hr></p>

<p>  <?php if ($stx && $board_count) { ?></p>

<p>  <section id="sch_res_list"></p>

<p>    <?php }  ?></p>

<p>    <?php</p>

<p>    $k=0;</p>

<p>    for ($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++) {</p>

<p>        $comment_def = "";</p>

<p>        $comment_href = "";</p>

<p>     ?></p>

<p>    <h2><img src="<?php echo $search_skin_url ?>/img/icon_sch_board.gif" valign="absmiddle" /> <a href="./board.php?bo_table=<?php echo $search_table[$idx] ?>&amp;<?php echo $search_query ?>"><?php echo $bo_subject[$idx] ?> <a href="./board.php?bo_table=<?php echo $search_table[$idx] ?>&amp;<?php echo $search_query ?>"><img src="<?php echo $search_skin_url ?>/img/icon_sch_more.gif" alt="검색결과 더보기" /></a></h2></p>

<p>        <?php</p>

<p>        for ($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++) {</p>

<p>            if ($list[$idx][$i][wr_is_comment])</p>

<p>            {</p>

<p>                $comment_def = "<span class=\"cmt_def\">[댓글]</span>";</p>

<p>                $comment_href = "#c_".$list[$idx][$i][wr_id];</p>

<p>            }</p>

<p>      //썸네일 이미지 생성</p>

<p>      $thumb_info = get_list_thumbnail($search_table[$idx], $list[$idx][$i][wr_id],105,79);</p>

<p>      $sch_thumb = $thumb_info['src'];</p>

<p>     </p>

<p>      //파일명 조회</p>

<p>      $file_info['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);</p>

<p>      $sch_file=$file_info[file][0]['source'];</p>

<p> </p>

<p>     ?></p>

<p>

 </p>

<p><!-- 이후로 게시판 및 내용 표시 --></p>

<p>    <div id="sch_res_cont"></p>

<p>      <table id="sum" summary="전체 게시판 검색결과" ></p>

<p>        <thead></p>

<p>        <tr></p>

<p>            <th scope="col">번호</th></p>

<p>            <th scope="col">게시판명</th></p>

<p>            <th scope="col">제목</th></p>

<p>            <th scope="col">자료명</th></p>

<p>            <th scope="col">작성자</th></p>

<p>            <th scope="col">날짜</th></p>

<p>        </tr></p>

<p>        </thead></p>

<p>        <tbody></p>

<p>        <tr></p>

<p>          <td class="number"><?php echo $i+1 ?></td></p>

<p>          <td class="group"> <?php echo $group['gr_subject'] ?> </td></p>

<p>          <td class="board"> <?php echo $bo_subject[$idx] ?> </td></p>

<p>          <td class="sch_res_title"><a href="<?php echo $list[$idx][$i][href] ?><?php echo $comment_href ?>" ><?php echo $comment_def ?><?php echo $list[$idx][$i][subject] ?></a> <a href="<?php echo $list[$idx][$i][href] ?><?php echo $comment_href ?>" target="_blank"> <img src="<?php echo $search_skin_url ?>/img/icon_sch_newwindow.gif" alt="새창"></a></td></p>

<p>          <td class="file"> <?php if($sch_file){?></p>

<p>             <img src="<?php echo $search_skin_url ?>/img/icon_sch_file.gif" alt="파일"> <?php echo $sch_file ?></p>

<p>            <?php }  ?></td></p>

<p>          <!--<td class="sch_res_cont_txt" valign="top"><?php echo mb_strimwidth($list[$idx][$i][content],'0','395','...','utf-8') ?></td>--></p>

<p>          <td class="sch_res_cont_date" valign="bottom"><span class="sch_res_name"><?php echo $list[$idx][$i][name] ?> </span> </td></p>

<p>          <td class="date"><?php echo date("Y.m.d h:m", strtotime($list[$idx][$i][wr_datetime])) ?></td></p>

<p>        </tr></p>

<p>        </tbody></p>

<p>      </table></p>

<p>    </div></p>

<p>    <?php }  ?></p>

<p>    <hr></p>

<p>    <?php }  ?></p>

<p>    <?php if ($stx && $board_count) {  ?></p>

<p>  </section></p>

<p>  <?php }  ?></p>

<p>  <?php echo $write_pages ?> </div></p>

<p><!-- } 전체검색 끝 --></p>

<p>

 

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

답변 2개

채택된 답변
+20 포인트

테스트는 못해 봤지만 이런 식이면 될 겁니다.

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');//썸네일 라이브러리
include_once('./_common.php');
 
?>
 
<!-- 전체검색 시작 { -->
<link rel="stylesheet" href="<?php echo $search_skin_url ?>/style.css">
 
<form name="fsearch" onsubmit="return fsearch_submit(this);" method="get">
  <input type="hidden" name="srows" value="<?php echo $srows ?>">
  <fieldset id="sch_res_detail">
    <legend>상세검색</legend>
    <?php echo $group_select ?>
    <script>document.getElementById("gr_id").value = "<?php echo $gr_id ?>";</script>
    <label for="sfl" class="sound_only">검색조건</label>
    <select name="sfl" id="sfl">
      <option value="wr_subject||wr_content"<?php echo get_selected($_GET['sfl'], "wr_subject||wr_content") ?>>제목+내용</option>
      <option value="wr_subject"<?php echo get_selected($_GET['sfl'], "wr_subject") ?>>제목</option>
      <option value="wr_content"<?php echo get_selected($_GET['sfl'], "wr_content") ?>>내용</option>
      <option value="mb_id"<?php echo get_selected($_GET['sfl'], "mb_id") ?>>회원아이디</option>
      <option value="wr_name"<?php echo get_selected($_GET['sfl'], "wr_name") ?>>이름</option>
    </select>
    <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
    <input type="text" name="stx" value="<?php echo $text_stx ?>" id="stx" required class="frm_input required" maxlength="20">
    <input type="submit" class="btn_submit" value="검색">
    <script>
    function fsearch_submit(f)
    {
        if (f.stx.value.length < 2) {
            alert("검색어는 두글자 이상 입력하십시오.");
            f.stx.select();
            f.stx.focus();
            return false;
        }
 
        // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
        var cnt = 0;
        for (var i=0; i<f.stx.value.length; i++) {
            if (f.stx.value.charAt(i) == ' ')
                cnt++;
        }
 
        if (cnt > 1) {
            alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
            f.stx.select();
            f.stx.focus();
            return false;
        }
       
        f.action = "";
        return true;
    }
    </script>
    <input type="radio" value="or" <?php echo ($sop == "or") ? "checked" : ""; ?> id="sop_or" name="sop">
    <label for="sop_or">OR</label>
    <input type="radio" value="and" <?php echo ($sop == "and") ? "checked" : ""; ?> id="sop_and" name="sop">
    <label for="sop_and">AND</label>
  </fieldset>
</form>
<div id="sch_result">
  <?php
    if ($stx) {
        if ($board_count) {
    ?>
  <section id="sch_res_ov">
    <h2><?php echo $stx ?> 전체검색 결과</h2>
    <dl>
      <dt>게시판</dt>
      <dd><strong style="color:<?php echo $config['cf_search_color'] ?>"><?php echo $board_count ?>개</strong></dd>
      <dt>게시물</dt>
      <dd><strong style="color:<?php echo $config['cf_search_color'] ?>"><?php echo number_format($total_count) ?>개</strong></dd>
    </dl>
    <p><?php echo number_format($page) ?>/<?php echo number_format($total_page) ?> 페이지 열람 중</p>
  </section>
  <?php
        }
    }
    ?>
  <?php
    if ($stx) {
        if (!$board_count) {
     ?>
  <div id="sch_res_no">검색 결과가 없습니다.</div>
  <?php } }  ?>
  <hr>
  <?php if ($stx && $board_count) { ?>
  <section id="sch_res_list">
    <?php }  ?>
    <?php
    $k=0;
    for ($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++) {
        $comment_def = "";
        $comment_href = "";
     ?>
    <h2><img src="<?php echo $search_skin_url ?>/img/icon_sch_board.gif" valign="absmiddle" /> <a href="./board.php?bo_table=<?php echo $search_table[$idx] ?>&<?php echo $search_query ?>"><?php echo $bo_subject[$idx] ?> <a href="./board.php?bo_table=<?php echo $search_table[$idx] ?>&<?php echo $search_query ?>"><img src="<?php echo $search_skin_url ?>/img/icon_sch_more.gif" alt="검색결과 더보기" /></a></h2>

        <div id="sch_res_cont">

<?php

    
          $gr_id = $list[$idx]; //$board['gr_id'];
          $gr = sql_query(" select gr_subject​ from g5_group where gr_id = '$gr_id' ");
          echo $g_subject= $gr['gr_subject'];
?>
      <table id="sum" summary="전체 게시판 검색결과" >
        <thead>
        <tr>
            <th scope="col">번호</th>
            <th scope="col">게시판명</th>
            <th scope="col">제목</th>
            <th scope="col">자료명</th>
            <th scope="col">작성자</th>
            <th scope="col">날짜</th>
        </tr>
        </thead>
        <tbody>


        <?php


        for ($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++) {
            if ($list[$idx][$i][wr_is_comment])
            {
                $comment_def = "<span class=\"cmt_def\">[댓글]</span>";
                $comment_href = "#c_".$list[$idx][$i][wr_id];
            }
      //썸네일 이미지 생성
      $thumb_info = get_list_thumbnail($search_table[$idx], $list[$idx][$i][wr_id],105,79);
      $sch_thumb = $thumb_info['src'];
     
      //파일명 조회
      $file_info['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);
      $sch_file=$file_info[file][0]['source'];
 
     ?>

 
<!-- 이후로 게시판 및 내용 표시 -->

        <tr>
          <td class="number"><?php echo $i+1 ?></td>
          <td class="group"> <?php echo $group['gr_subject'] ?> </td>
          <td class="board"> <?php echo $bo_subject[$idx] ?> </td>
          <td class="sch_res_title"><a href="<?php echo $list[$idx][$i][href] ?><?php echo $comment_href ?>" ><?php echo $comment_def ?><?php echo $list[$idx][$i][subject] ?></a> <a href="<?php echo $list[$idx][$i][href] ?><?php echo $comment_href ?>" target="_blank"> <img src="<?php echo $search_skin_url ?>/img/icon_sch_newwindow.gif" alt="새창"></a></td>
          <td class="file"> <?php if($sch_file){?>
             <img src="<?php echo $search_skin_url ?>/img/icon_sch_file.gif" alt="파일"> <?php echo $sch_file ?>
            <?php }  ?></td>
          <!--<td class="sch_res_cont_txt" valign="top"><?php echo mb_strimwidth($list[$idx][$i][content],'0','395','...','utf-8') ?></td>-->
          <td class="sch_res_cont_date" valign="bottom"><span class="sch_res_name"><?php echo $list[$idx][$i][name] ?> </span> </td>
          <td class="date"><?php echo date("Y.m.d h:m", strtotime($list[$idx][$i][wr_datetime])) ?></td>
        </tr>

    <?php }  ?>

        </tbody>
      </table>
    </div>

    <hr>
    <?php }  ?>
    <?php if ($stx && $board_count) {  ?>
  </section>
  <?php }  ?>
  <?php echo $write_pages ?> </div>
<!-- } 전체검색 끝 -->
 

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

답변에 대한 댓글 9개

더루차
2년 전
정말 정말 감사드립니다 반복 되는 문제는 잘 해결하고 배울 수 있었습니다!!
그런데 그룹이름 표시같은 경우는 여전히 표시가 되지 않고 있네요 ..ㅠ
엑스엠엘
2년 전
그룹이름"을 어디에 표시하시고 싶으신 건가요?
더루차
2년 전
현재 그룹 명 추출하는 쿼리 바로 위 <h2> 부분에 표시하고자 합니다. 지금 현재는 게시판 명이 나오고 있습니다
엑스엠엘
2년 전
<?php
$gr_id = $list[$idx]; //$board['gr_id'];
$gr = sql_query(" select gr_subject​ from g5_group where gr_id = '$gr_id' ");
echo $g_subject= $gr['gr_subject'];
?>
이 부분에서 출력이 없나요?
더루차
2년 전
네 저 부분에서 출력도 없고 후에 <td class="group"> <?php echo $group['gr_subject'] ?> </td> 부분에 $g_subject 로 입력하여 테스트 해보았는데도 여전히 표시 되지 않고 있습니다
엑스엠엘
2년 전
echo " select gr_subject​ from g5_group where gr_id = '$gr_id' ";
해서 원하는 형태의 query문이 나오나요?
더루차
2년 전
아니요 아무것도 표시되지 않거나 , 쿼리문 그 자체로 표시 되네요 '$gr_id' 부분은 Array로 표시 됩니다
엑스엠엘
2년 전
<?php
$gr_id = $list[$idx]; //$board['gr_id'];
$gr = sql_query(" select gr_subject​ from g5_group where gr_id = '$gr_id' ");
echo $g_subject= $gr['gr_subject'];
?>
여기서
$list[ $idx]
대신에
$search_table[$idx]
를 사용해 보세요.
더루차
2년 전
이제 $gr_id는 제대로 표시되는걸 확인했습니다! 감사합니다
그룹 테이블에서 불러오는 쪽에 뭐가 안 되는 것 같습니다

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

그룹이름 나오는 부분을 따로 불러 와서 한번만 실행해서 보여주면 될 것 같습니다.

 

bbs/search.php 에서 수정하면 됩니다.

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

답변에 대한 댓글 1개

더루차
2년 전
덕분에 조금 실마리를 잡은 것 같았는데 또 다시 마지막 그룹코드만 뜨는 참사가 발생해서
다시 하고 있습니다.. 일단 조금 더 해보겠습니다 감사합니다 !

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

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

로그인