검색을 되게 할려면 어떻게 해야 할까요?

검색을 되게 할려면 어떻게 해야 할까요?

QA

검색을 되게 할려면 어떻게 해야 할까요?

본문


<?php
include_once('./_common.php');
$sql_common = " from g5_write_data ";
$sql_search = " where (1) ";
$sql_order = " order by wr_subject desc ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = 20; // 목록수
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
include_once(G5_PATH.'/head.php');
add_stylesheet('<link rel="stylesheet" href="'.G5_URL.'/css/style.css?ver='.G5_JS_VER.'">', 0);
?>
<!-- 전체게시물 검색 시작 { -->
<fieldset id="new_sch">
    <legend>상세검색</legend>
    <form name="f" method="get">
    <label for="sfl" class="sound_only">검색대상</label>
    <select name="sfl" id="sfl">
        <option value="wr_subject">제품명
        <option value="wr_30">모델명
    </select>
    <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
    <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" id="stx" required class="frm_input" size="40">
    <button type="submit" class="btn_submit"><i class="fa fa-search" aria-hidden="true"></i> 검색</button>
    </script>
    </form>
</fieldset>
<!-- } 전체게시물 검색 끝 -->
<!-- 전체게시물 목록 시작 { -->
<form name="f_list" id="f_list" method="post" action="#" onsubmit="return f_submit(this);">
<input type="hidden" name="sfl"      value="<?php echo $sfl; ?>">
<input type="hidden" name="stx"      value="<?php echo $stx; ?>">
<input type="hidden" name="page"     value="<?php echo $page; ?>">
<input type="hidden" name="pressed"  value="">
<div class="tbl_head01 tbl_wrap">
    <table>
    <colgroup>
      <col width="45%" />
      <col width="45%" />
      <col width="10%" />
    </colgroup>
    <thead>
    <tr>
        <th scope="col">제품명</th>
        <th scope="col">명칭</th>
        <th scope="col">수량</th>
    </tr>
    </thead>
    <tbody>
    <?php
    $sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
    $result = sql_query($sql);
    for ($i=0; $row=sql_fetch_array($result); $i++)
    {
    ?>
    <tr>
        <td class="td_subject"><?php echo $row['wr_subject']; ?></td>
        <td class="td_wr_30"><?php echo $row['wr_30']; ?></td>
        <td class="td_wr_31"><?php echo number_format($wr_31); ?></td>
    </tr>
    <?php }  ?>
    <?php if ($i == 0)
        echo '<tr><td colspan="3" class="empty_table">게시물이 없습니다.</td></tr>';
    ?>
    </tbody>
    </table>
</div>
</form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, '?'.$qstr.'&page='); ?>
<!-- } 전체게시물 목록 끝 -->
<?php
include_once(G5_PATH.'/tail.php');
?>

 

 

모양은 이래저래 만들었는데 검색을 되게 할려면 어떻게 해야 할까요?

 

 

이 질문에 댓글 쓰기 :

답변 2



<?php
include_once('./_common.php');
$sql_common = " from g5_write_data ";
$sql_search = " where (1) ";
if($sfl && $stx){
    $sql_search .= " `".$sfl."` = '".$stx."' ";
}
$sql_order = " order by wr_subject desc ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = 20; // 목록수
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
include_once(G5_PATH.'/head.php');
add_stylesheet('<link rel="stylesheet" href="'.G5_URL.'/css/style.css?ver='.G5_JS_VER.'">', 0);
?>

 

 

1) SQL문을 완성해야합니다. (DB 호출)

2) HTML FORM 문을 완성해야합니다. (검색창)

3) 검색된 결과를 볼수 있는 코드가 필요합니다. (결과창)

 

1) SQL

$sql_search 변수에 원하는시 검색 SQL문을 넣으셔야합니다.

 

예를 들어 제품명(wr_subject)을 검색하고 싶으시다면 

 

전체적인 SQL문은 

$sql = " SELECT * FROM g5_write_date WHERE wr_subject = '상품명' ORDER BY wr_subject ASC ";

 

입니다. 이것을 작업하기 편하게 하기 위해 SQL문을 쪼개어 놓았는데요.

 

$sql_common = " FROM g5_write_date ";
$sql_search = " WHERE wr_subject = '상품명' ";
$sql_order = " ORDER BY wr_subject ASC ";
$sql = " SELECT * {$sql_common} {$sql_search} {$sql_order} ";

이런 식 입니다.

 

따라서 $sql_search = " WHERE wr_subject = '상품명' ";  이 부분을 원하시는 검색이 되도록 변수로 받으시면 됩니다.

 

2) 검색창

위 html 소스처럼 form 문을 활용하셨어

검색어를 넣고 돌릴 URL 또는 경로파일명,

검색어 입력(input 태그 활용),

검색 시작 버튼(form문의 지정 경로로 정보 전달) 

 

3) 결과창

form문의 경로에 따라 전달 받은 정보값을 1)의 SQL문에 활용해서 

질문하신 소스의 목록 화면으로 출력하게 만드시면 됩니다.

 

초심자분에게는 조금 어러울수 있습니다.

html의 기본 동작과 사용방법을 알아야하고

PHP의 기본 문법을 활용해서

SQL문에 전달하여 DB의 데이타를 불러와야하기 때문에 생각보다 많은 학습이 필요할 수 있습니다.

근데 조금만 시간 투자하시면 금방 이해하실 거라 생각됩니다.

 

글이 너무 길어지는 것 같아 이만 줄이겠습니다.

아무쪼록 원하시는 답을 꼭 찾으시길 바랍니다.

즐거운 코딩되세요~!!

 

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,153 | RSS
QA 내용 검색

회원로그인

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