<?php // (2022.8.27, 차재복, Cha Jae Bok, http://www.ktword.co.kr)
# db 설정 (정보통신기술용어 db)
include_once "../base_utils/db_conn.php";
// 이로부터 db 접속 성공의 결과로써, $dbi 변수가 넘어옴
# 페이지 구분 관련 함수 라이브러리 호출
include "../paging/paging_utils.php";
# 파라미터 전달
$cur_page = $_GET['p']; // 요청 페이지 번호
if ( !empty($cur_page) and !is_numeric($cur_page) ) exit;
if ( empty($cur_page) ) $cur_page = 1;
// $cur_script ;
// 검색어 시작
$sh = $_REQUEST['sh'];
if ( isset($_REQUEST['sh']) and !empty($sh) and !is_numeric($sh) or $sh<0 ) exit; // 해킹방지 (수치>0)
# 페이지 관련 상태 값 설정 및 요약
// 페이지 당 출력 레코드 수
$page_records = 10;
// 레코드 쿼리를 위한 where 절
$letters = "가나다라마바사아자차카타파하ABCDEFGHIJKLMNOPQRSTUVWXYZ數";
if (empty($sh)) {
// 가 ~ 나
$where_str = "substr(word,1,1) >= '".mb_substr($letters,0,1)."' and substr(word,1,1) < '".mb_substr($letters,1,1)."'";
} else {
// 한글 : 가 ~ 파
if( $sh >= 0 and $sh < 13 ) {
$where_str = "substr(word,1,1) >= '".mb_substr($letters,$sh,1)."' and substr(word,1,1) < '".mb_substr($letters,$sh+1,1)."'";
// 한글: 하
} else if( $sh == 13 ) {
$where_str = "substr(word,1,1) >= '".mb_substr($letters,$sh,1)."' and substr(word,1,1) < '힣'";
// 영어 A ~ Y
} else if ( $sh >= 14 and $sh <= 39 ) {
$where_str = "upper(substr(word,1,1)) = '".mb_substr($letters,$sh,1)."'";
// 숫자
} else if ( $sh = 40 ) {
$where_str = "substr(word,1,1) >= '0' and substr(word,1,1) <= '9'";
} else {
exit ("not allowed parameter !!!");
}
}
$sh_word = mb_substr($letters,$sh,1);
// 전체 레코드 수 계산 쿼리
// $query = "select korean from cjb_dict where {$where_str} order by korean";
$query = "select word from dict_word_list where {$where_str} order by word";
$total_records = total_records ($query, $dbi);
// 페이지 정보 함수 호출을 위한 매개변수 배열화
$page_info_vars = array (
'sh' => $sh_word, // 검색어
'total_records' => $total_records, // 전체 레코드 수
'cur_page' => $cur_page, // 현재 페이지 번호
'page_records' => $page_records // 페이지 당 출력 레코드 수
);
// 페이지 정보 함수 호출 및 그 결과
$pages = page_info ( $page_info_vars );
$total_pages = $pages['total_pages'];
$start_record = $pages['start_record'];
# div 설정
echo "<div id='page_div' style='margin:0;padding:0;'>";
# 페이지 이동 안내 (상단)
page_display ($cur_page, $total_pages, $cur_script.'?');
echo "<br><br>";
# 해당 페이지 쿼리 및 출력
// 쿼리문
// $query = "select korean,no from cjb_dict where {$where_str} order by korean
// limit $start_record, $page_records";
$query = "select word,no from dict_word_list where {$where_str} order by word
limit $start_record, $page_records";
// 쿼리 실행
$result=mysqli_query($dbi,$query);
if (mysqli_errno($dbi)) { echo mysqli_errno($dbi)." : ".mysqli_error($dbi)."\n";}
// 레코드별로 가져와서 화면에 출력함
$i = 1;
while ( $matched = mysqli_fetch_assoc($result) ) {
echo $cur_page . "-" . $i." (".($start_record+$i).") ";
echo "<a href='/test/view/view.php?no=".$matched['no']."' class='line'>".$matched['word']."</a>";
echo "<br>";
$i = $i + 1 ;
}
echo "<br>";
# 페이지 이동 안내 (하단)
page_display ($cur_page, $total_pages, $cur_script.'?');
# div 종료
echo "</div>";
?>
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"