Q&A

얼마전 외부문서를 불러와 페이징하는 질문을 드렸었는데요...

일차적으로 해결은 하였습니다.

 

헌데 통합검색 결과값에서도 페이징 처리가 되게 하고 싶은데....  잘 처리가 안되는군요.

기본 통합검색 스킨의 head.html 파일에서 상단에  제가 나태내고 싶은 코드를 집어 넣었는데요...  
html 이라서 그런지 php코드가 제대로 인식하는지 모르겠기도 하고...  

테스트  http://pumpia.com     샘플 검색어 : "부스터" 검색해 보시면 고수님들은 금방 아실 수 있을 것 같아요.

 

#외부페이지

 파일 : company_search.php
 DB Table : company (업체리스트 )
company_filename.jpg

 

 


항목은....

1.프리미엄서치

2.사이트 (업체리스트)  ---  페이징 처리

3.xe 검색결과

코드를 보시고 확인 부탁드립니다. 

---------------------------------------------------------------------------------------------------------------------------------------

1.프리미엄서치 코드

  

<div id="title">프리미엄서치</div>
<br>
<?
$keyword = Context::get('is_keyword');
include "db_config.php";
$keyword=$is_keyword;
  $Sql="select * from xe_documents where  tags like '%$keyword%' and module_srl=1627 and category_srl=1637";

      $rResult = mysql_query($Sql);

while($R=mysql_fetch_array($rResult)) 
{
$data=@mysql_fetch_array(mysql_query("select * from xe_files where  upload_target_srl=$R[document_srl]"));
$data2=@mysql_fetch_array(mysql_query("select * from xe_document_extra_vars where   document_srl=$R[document_srl] and eid='url_link'"));    
    ?><a href="<?=$data2[value]?>" target=_blank><img src="<?=$data[uploaded_filename]?>" ></a>
    <?
    
     } ?>

 

2. 사이트  코드
 

<div id="title" style="padding: 10px;">사이트</div>
 


<?

// 3.디비와 연결
    $connect = mysql_connect("localhost","test","test") or die(mysql_error());


// 4.데이터베이스 선택
mysql_select_db("test") or die(mysql_error());

// 여기서 부터 페이징 관련

// 5. 현재 페이지 변수정리

if($_GET[page] && $_GET[page] > 0){
    // 현재 페이지 값이 존재하고 0 보다 크면 그대로 사용
    $page = $_GET[page];
}else{
    // 그 외의 경우는 현재 페이지를 1로 설정
    $page = 1;
}

// 6.페이지 기본 설정
// 한 페이지에 보일 글 수
$page_row = 5;
// 한줄에 보여질 페이지 수
$page_scale = 5;


// 7. 전체 글 수 구하기
 $query_total="select count(*) as cnt from company where (company like '%$keyword%' or tag like '%$keyword%' or address_doro like '%$keyword%' or telephone like '%$keyword%' or homepage like '%$keyword%')  and display='yes'";
$result_total = mysql_query($query_total, $connect);
$data_total = mysql_fetch_array($result_total);
$total_count = $data_total[cnt];

// 8. 전체 페이지 계산
$total_page  = ceil($total_count / $page_row);

// 9. 시작 열을 구함
$from_record = ($page - 1) * $page_row;

// 10. 페이징을 출력할 변수 초기화
$paging_str = "";



// 11. 처음 페이지 링크 만들기
if ($page > 1) {
    $paging_str .= "<a href='".$_SERVER['PHP_SELF']."&page=1'>처음</a>";
}

// 12. 페이징에 표시될 시작 페이지 구하기
$start_page = ( (ceil( $page / $page_scale ) - 1) * $page_scale ) + 1;

// 13. 페이징에 표시될 마지막 페이지 구하기
$end_page = $start_page + $page_scale - 1;
if ($end_page >= $total_page) $end_page = $total_page;

// 14. 이전 페이징 영역으로 가는 링크 만들기
if ($start_page > 1){
    $paging_str .= "  <a href='".$_SERVER['PHP_SELF']."&page=".($start_page - 1)."'>이전</a>";
}

// 15. 페이지들 출력 부분 링크 만들기
if ($total_page > 1) {
    for ($i=$start_page;$i<=$end_page;$i++) {
        // 현재 페이지가 아니면 링크 걸기
        if ($page != $i){
            $paging_str .= "  <a href='".$_SERVER['PHP_SELF']."&page=".$i."'><span>".$i."</span></a>";
        // 현재페이지면 굵게 표시하기
        }else{
            $paging_str .= "  <b>".$i."</b> ";
        }
    }
}

// 16. 다음 페이징 영역으로 가는 링크 만들기
if ($total_page > $end_page){
    $paging_str .= "  <a href='".$_SERVER['PHP_SELF']."&page=".($end_page + 1)."'>다음</a>";
}

// 17. 마지막 페이지 링크 만들기
if ($page < $total_page) {
    $paging_str .= "  <a href='".$_SERVER['PHP_SELF']."&page=".$total_page."'>맨끝</a>";
}
// 여기까지 페이징

// 18.쿼리문 작성
$query = "select * from company where (company like '%$keyword%' or tag like '%$keyword%' or address_doro like '%$keyword%' or telephone like '%$keyword%' or homepage like '%$keyword%')  and display='yes' LIMIT "  .$from_record.", ".$page_row;

// 19.쿼리문 적용하여 $result 에 대입
$result = mysql_query($query, $connect);

// 20.데이터 갯수 체크를 위한 변수 설정
$i = 0;

// 21.데이터가 있을 동안 반복해서 값을 한 줄씩 읽기
while($R = mysql_fetch_array($result)){
?>


<ul id="company">

  
<li class="name"><a href="http://<?=$R[homepage]?>" target=_blank><?=$R[company]?></a></li>
    <li><?=$R[contents]?></li>

<!--<li><?=$R[address]?></li> -->
<li><?=$R[address_doro]?> <?=$R[address_detail]?></li>

    <!-- <li><?=$R[tag]?></li> -->
<!--     <li><a href="http://<?=$R[homepage]?>" target=_blank><?=$R[homepage]?></a> </li>  -->
    <font color=#339933>
<li>

<TABLE>
<TR>
<TD width=200><a href="http://<?=$R[homepage]?>" target=_blank><?=$R[homepage]?></a></TD>

<TD width=200><b>T</b> : <?=$R[telephone]?> </TD>
</TR>
</TABLE>

</li>  

</font>

</ul>






<?
    // 22.데이터 갯수 체크를 위한 변수를 1 증가시킴
    $i++;
}

// 23.데이터가 하나도 없으면 
if($i == 0){
?>

    <tr>
        <td height="50" align="center" valign="middle" colspan="5" style="border:1px #CCCCCC solid;">자료가 하나도 없습니다.</td>
    </tr>
<?
}



// 24. 페이징 출력
if($paging_str){
?>

    <tr>

<table align="center">
        <td height="30" align="center" valign="middle" colspan="15" style="border:1px #CCCCCC solid;"><?=$paging_str?></td>
    </tr>
</table>


<?
}

// 25.디비 닫기
mysql_close($connect);
?>









<style>


#title{

font-family: 'Nanum Gothic', sans-serif;

font:15px "나눔고딕",'Nanum Gothic',sans-serif;

font-weight:600;

}
        #company {
            width:95%;
            font-size: 13px;
            color:#000;
            list-style: none;
            text-align: left;


        }
        #company li {
            padding:0px;
            margin:0px;    
        }
        .name {
            font-weight: 700;
        }

</style>

    <div id="spot">
        <form action="{getUrl()}" method="get" class="search" id="fo_is">
            <input type="hidden" name="mid" value="{$mid}" />
            <input type="hidden" name="act" value="IS" />
            <input type="hidden" name="where" value="{$where}" />
<input type="hidden" name="search_target" value="title_content" />
<input type="hidden" name="error_return_url" value="" />
            <input name="is_keyword" type="text" class="inputText" value="{htmlspecialchars($is_keyword)}"/>
            <input type="submit" value="{$lang->cmd_search}" class="btn" />
        </form>
    </div>

    <ul class="localNavigation">
        <li <!--@if(!$where)-->class="on"<!--@end-->><a href="{getUrl('where','','page','','division','')}">{$lang->integration_search}</a></li>
        <li <!--@if($where=='product')-->class="on"<!--@end-->><a href="{getUrl('where','product','page',1,'division','')}">상품</a></li>
        <li <!--@if($where=='document')-->class="on"<!--@end-->><a href="{getUrl('where','document','page',1,'division','')}">게시물</a></li>
    </ul>

<!--@end-->

 

 

3.  풀 소스 
    header.html

비누남어 Lv. 3

댓글 0