database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 28 게시물 읽기
No. 28
Re: [첫 질문] select 대상 중 특정 위치의 특정 개수만 fetch하는 방법...
작성자
홍성동
작성일
2001-05-04 16:55
조회수
18,857

<?

//------------------------------- 페이지 출력용 변수 --------

$line_scale = 15; // 한페이지당 줄 수

$page_scale = 10; // 페이지 표시 수

 

if(!$page)

// 첫페이지 수

{

$start = 0;

$page = 1;

}

else

{

$start = $page*$line_scale - $line_scale;

}

if(!$page_start)

{

$page_start = 1;

}

//-----------------------------------------------------------

 

........ 중략!

 

$qry_list = "select .......";

$result_list = sybase_query($qry_list, $conn);

$CNT_LIST = sybase_num_rows($result_list); // 검색결과 카운트(for loop)

 

//------------------ 지정된 줄수까지-----------------------

if(($CNT_LIST-$start) < $line_scale)

{

$line_end = $CNT_LIST;

}

else

{

$line_end = $page*$line_scale;

}

//---------------------------------------------------------

for($i = $start; $i < $line_end; $i++)

{

sybase_data_seek($result_list, $i);

$row_list = sybase_fetch_array($result_list);

$MSG_ID = $row_list[msg_id];

$NO = $i + 1;

} //end for($i=0; $i < $CNT; $i++)

if($CNT_LIST!='0')

{

$TOT_PAGE = ceil($CNT_LIST / $line_scale); // 총페이지수

if($page_start > $page_scale)

{

$P_PAGE_START = $page_start - $page_scale;

$P_PAGE = $page_start -1;

echo("<a href='.....?page_start=$P_PAGE_START&page=$P_PAGE'>[Prev]</a>");

}

if(($TOT_PAGE-$page_start) < $page_scale)

{

for($i = $page_start; $i <= $TOT_PAGE; $i++)

{

if ($page == $i)

echo("<font color='red'><b>[$i]</b></font>");

else

echo("[<a href='...?page=$i&page_start=$page_start'>$i</a>]");

}

}

else

{

for($i = $page_start; $i < ($page_start+$page_scale); $i++)

{

if ($page == $i)

echo("<font color='red'><b>[$i]</b></font>");

else

echo("[<a href='...?page=$i&page_start=$page_start'>$i</a>]");

}

}

if(($page_start + $page_scale) <= $TOT_PAGE)

{

$N_PAGE_START = $page_start + $page_scale;

echo("<a href='...?page_start=$N_PAGE_START&page=$N_PAGE_START'>[Next]</a>");

}

}

?>

 

이렇게 한번해봐여!!!!

되면 술사시구여......

 

>>박성철 님께서 쓰시길<<

 

:: 제가 첫 질문을 올리는 사람이 되었네요.

:: 예전부터 사이베이스 게시판이 생기면 묻고 싶은 질문이 있습니다.

:: 계시판이나 검색 엔진에 보면 전체 목록을 10개나 20개씩 묶어서 페이지별로

:: 보여주 잖아요? 목록 밑에는 페이 번호가

:: <<prev 1,2,3,4,5,6,7,8,9,10 next>>

:: 이런 식으로 나오고...

:: 그런데 아무리 생각해도 전체 select된 row 중에서 특정 위치의 것 부터 n개를

:: fetch하는 방법을 모르겠네요.

:: 제가 sybase를 많이 쓰지 않아서 연구할 기회가 없었지만...

:: 제가 아는 사람은 처음부터 fetch해 와서 원하는 위치가 될때까지 그냥 버리고

:: 원하는 자료가 fetch되면 그것을 취하는 방법을 쓰는데...너무 원시적인 것 같고...

:: 저는 select 된 row의 identity만 fetch 해 와서 원하는 자료의 id들을 얻은 다음

:: 다시 query를 날리는 방법을 씁니다만...

:: 좋은 방법 있으면 알려주세요.

:: 결국 postgresql의 limit 같은 것을 구현하는 질문이네요.

:: 오라클에서는 rownum이랑 hint를 사용해서 구현하는데... informix랑 sybase는 영... 모르겠네요. sele

:: ct top n 으로는 안될 것 같고...

::

::

[Top]
No.
제목
작성자
작성일
조회
18sybase에서는 db 백업을 어떻게 하는지..
질문
2001-04-26
18576
20┕>Re: bcp 활용(1) - Sybase 백업하기
김동구
2001-04-27 03:28:24
26388
21┕>Re: bcp 활용(2) Insert 방법
김동구
2001-04-27 03:27:27
21569
37┕>Re: sybase에서는 db 백업을 어떻게 하는지..
giganti
2001-05-21 15:34:02
21574
17mysql의 limit 과 같은 sybase의 기능은?
싸이
2001-04-25
17256
19┕>Re: mysql의 limit 과 같은 sybase의 기능은? [1]
calm1004
2001-04-27 00:39:49
18941
14Oracle의 to_date와 같은 sql함수가 있는지요.
지승훈
2001-04-23
18956
15┕>Sybase에는 날짜의 차를 구하는 함수가 있습니다.
calm1004
2001-04-24 09:50:09
27443
16┕>Re: Oracle의 to_date와 같은 sql함수가 있는지요.
이승현
2001-04-24 08:34:21
21105
12[첫 질문] select 대상 중 특정 위치의 특정 개수만 fetch하는 방법...
박성철
2001-04-21
18761
13┕>Re: [첫 질문] select 대상 중 특정 위치의 특정 개수만 fetch하는 방법...
calm1004
2001-04-21 10:04:58
19162
28┕>Re: [첫 질문] select 대상 중 특정 위치의 특정 개수만 fetch하는 방법...
홍성동
2001-05-04 16:55:42
18857
11사이베이스 정보 많은 홈페이지 !!!
김동구
2001-04-19
19231
9[축하] 게시판 연 것을 축하합니다
문태준
2001-04-15
14187
10┕>Re: [축하] 게시판 연 것을 축하합니다
calm1004
2001-04-16 20:02:46
17909
7축하 드립니다.
허정수
2001-04-14
13703
8┕>Re: 축하 드립니다.
calm1004
2001-04-14 20:59:46
14233
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다