mysql함수 [숫자열, 문자열, 집계, 날짜, 기타함수...]

MySQL commands :
Note that all text commands must be first on line and end with ';'
help      (\h)    Display this help.
?            (\?)    Synonym for `help'.
clear      (\c)    Clear command.
connect (\r)    Reconnect to the server. Optional arguments are db and host.
ego       (\G)    Send command to mysql server, display result vertically.
exit       (\q)    Exit mysql. Same as quit.
go         (\g)    Send command to mysql server.
notee     (\t)    Don't write into outfile.
print     (\p)    Print current command.
quit       (\q)    Quit mysql.
rehash   (\#)    Rebuild completion hash.
source    (\.)    Execute a SQL script file. Takes a file name as an argument.
status    (\s)    Get status information from the server.
tee        (\T)    Set outfile [to_outfile]. Append everything into given outfile.
use        (\u)    Use another database. Takes database name as argument.

Connection id: 6 (Can be used with mysqladmin kill)
 


MySQL 함수

숫자 관련 함수
▶ ABS(숫자) : 절대값 출력.
    select abs(123);
▶ CEILING(숫자) : 값보다 큰 정수 중 가장 작은 수.
   --양수일 경우는 소숫점 자리에서 무조건 반올림(4.0과 같은 소숫점 자리 0 값은 제외)
   --음수일 경우는 소숫점 자리를 무조건 버림
    select ceiling(4.0);
    select ceiling(4.1);
    select ceiling(4.9);
▶ FLOOR(숫자) : 값보다 작은 정수 중 가장 큰 수[실수를 무조건 버림(음수일 경우는 제외)].
   --음수일 경우는 [.0/.00/.000/...] 을 제외하고 무조건 소숫점을 버리고 반내림(?)
    select floor(4.0);
    select floor(4.1);
    select floor(4.9);
    select floor(-4.6789);
▶ ROUND(숫자,자릿수) : 숫자를 소수점 이하 자릿수에서 반올림.(자릿수는 양수,0,음수를 갖을 수 있다.)
    --자릿수를 생략하면 소숫점이 5 이상일 때 반올림/자릿수를 지정하면 지정한 자리수에서 반올림
    select round(4.5);
    select round(4.55);
    select round(-4.5);
    select round(4.556);
    select round(4.556,0);
    select round(4.556,1);
    select round(4.556,2);
    select round(45.556,-1);
    select round(455.556,-2);
▶ TRUNCATE(숫자,자릿수) : 숫자를 소수점 이하 자릿수에서 버림.
   ==>만일 자릿수를 소숫점 이전으로 정하면 소숫점이하는 버리고 나머지 값은 0 값으로 처리
      / 예) truncate(9999,-3) --> 9000
   ==>또는 자릿수를 소숫점이하로 정하며, 해당숫자가 자릿수보다 소숫점이 모자랄경우 0 값으로 대치
      / 예) truncate(999,3) --> 999.000
   --반드시 자릿수를 명시해주어야 한다
   --음수일 경우는 해당자릿수에서 소숫점을 버리면서 무조건 반올림
   ==>(자릿수 숫자에서 이후 숫자가 0 일 경우는 제외 / 예)-4.0,0/-400,-2/-4.1230,4)
   ==>음수 역시 자릿수를 소숫점이하로 정하며, 해당숫자가 자릿수보다 소숫점이 모자랄경우 0 값으로 대치
   ==>또한 자릿수를 소숫점 이전으로 정하면 소숫점이하는 버리고 나머지 값은 역시 0 값으로 처리
▶ POW(X,Y) 또는 POWER(X,Y) : X의 Y승
   --소숫점이 있는 경우도 실행, 단 음수는 양수로 승처리
   select pow(-2.5,2);
   select pow(1.5,2);
▶ MOD (분자, 분모) : 분자를 분모로 나눈 나머지를 구한다.(연산자 %와 같음)
   select mod(12,5);    ==> 2
   select 12%5;           ==> 2
▶ GREATEST(숫자1,숫자2,숫자3...) : 주어진 수 중 제일 큰 수 리턴.
   select greatest(100,101,90);
▶ LEAST(숫자1,숫자2,숫자3...) : 주어진 수 중 제일 작은 수 리턴.
   select least(100,101,90);
▶ INTERVAL(a,b,c,d.....) : a(숫자)의 위치 반환
   --두 번째 이후는 오름차순 정렬이 되어야 함
   예) INTERVAL(5,2,4,6,8) ==> 2
        5는 4와 6사이에 존재, 4~6사이의 위치가 앞에서 2번째
   select interval(4,1,2,3,5,6);
 


문자 관련 함수
▶ ASCII(문자) : 문자의 아스키 코드값 리턴.
   SELECT ASCII('문자');
   select ascii('A');
▶ CONCAT('문자열1','문자열2','문자열3'...) : 문자열들을 이어준다.
   select concat('ASP,','PHP,','SQL',' WEB STUDY');
▶ INSERT('문자열','시작위치','길이','새로운문자열') : 문자열의 시작위치부터 길이만큼 새로운 문자열로 대치
   '시작위치' 와 '길이'는 문자열이 아니므로 작은따옴표로 굳이 묶어주지 않아도 된다.
   select insert('MySql web study','7','3','offline');
   select insert('MySql web study',7,3,'offline');
▶ REPLACE('문자열','기존문자열','바뀔문자열') : 문자열 중 기존문자열을 바뀔 문자열로 바꾼다.
   select replace('MySql web study','web','offline');
▶ INSTR('문자열','찾는문자열') : 문자열 중 찾는 문자열의 위치값을 출력
   --값이 존재하지 않으면 0값 리턴
   select instr('MySql web study','s');
   select instr('MySql web study','S');
▶ LEFT('문자열',개수) : 문자열 중 왼쪽에서 개수만큼을 추출.
   select left('MySql web study',5);
   select left('MySql web study','5');
▶ RIGHT('문자열',개수) : 문자열 중 오른쪽에서 개수만큼을 추출.
   select right('MySql web study',5);
   select right('MySql web study','5');
▶ MID('문자열',시작위치,개수) : 문자열 중 시작위치부터 개수만큼 출력
   select mid('MySql web study',7,3);
   select mid('MySql web study','7','3');
▶ SUBSTRING('문자열',시작위치,개수) : 문자열 중 시작위치부터 개수만큼 출력
   select substring('Mysql web study',11,5);
   select substring('Mysql web study','11','5');
▶ LTRIM('문자열') : 문자열 중 왼쪽의 공백을 없앤다.
   select ltrim('          web study');
▶ RTRIM('문자열') : 문자열 중 오른쪽의 공백을 없앤다.
   select rtrim('web study          ');
▶ TRIM('문자열') : 양쪽 모두의 공백을 없앤다.
   select trim('     web study      ');
▶ LCASE('문자열') 또는 LOWER('문자열') : 소문자로 바꾼다.
   select lcase('MYSQL');
   select lower('MySQL');
▶ UCASE('문자열') 또는 UPPER('문자열') : 대문자로 바꾼다.
   select ucase('mySql');
   select upper('mysql');
▶ REVERSE('문자열') : 문자열을 반대로 나열한다.
   예) REVERSE('abcde') ==> edcba
   select reverse('lqSyM');
 


논리 관련 함수, 집계함수
--논리 관련 함수
☞ IF(논리식,참일 때 값,거짓일 때 값)
   논리식이 참이면 참일 때 값을 출력하고 논리식이 거짓이면 거짓일 때 출력한다.
☞ IFNULL(값1,값2)
값1이 NULL 이면 값2로 대치하고 그렇지 않으면 값1을 출력

--집계 함수
☞ COUNT(필드명)
   NULL 값이 아닌 레코드 수를 구한다.
☞ SUM(필드명)
   필드명의 합계를 구한다.
☞ AVG(필드명)
   각각의 그룹 안에서 필드명의 평균값을 구한다.
☞ MAX(필드명)
   최대값을 구한다.
☞ MIN(필드명)
   최소값을 구한다.
 


날짜 관련 함수
▶ NOW() 또는 SYSDATE() 또는 CURRENT_TIMESTAMP()
   현재 날짜와 시간 출력
   ※ 함수의 상황이 숫자인지 문자열인지에 따라
      YYYYMMDDHHMMSS 또는
      'YYYY-MM-DD HH:MM:SS' 형식으로 반환한다.
   예)
   select now();
   ==> '2001-05-07 09:10:10'
   select now() + 0;
   ==> 20010507091010
▶ CURDATE() 또는 CURRENT_DATE()
   현재 날짜 출력
   ※ 함수의 상황이 숫자인지 문자열인지에 따라
      YYYYMMDD 또는
      'YYYY-MM-DD 형식으로 반환한다.
   예)
   select curdate();
   ==> '2001-05-07'
   select curdate() + 0;
   ==> 20010507
▶ CURTIME() 또는 CURRENT_TIME()
   현재 시간 출력
   ※ 함수의 상황이 숫자인지 문자열인지에 따라
   HHMMSS 또는 'HH:MM:SS' 형식으로 반환한다.
   예)
   select curtime();
   ==> '09:10:10'
   select curtime() + 0;
   ==> 091010
▶ DATE_ADD(날짜,INTERVAL 기준값)
   날짜에서 기준값 만큼 더한다.
※ 기준값 : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
   예)
   select date_add(now(), interval 2 day);
   ==> 오늘보다 2일 후의 날짜와 시간 출력.
   select date_add(curdate(), interval 2 day);
   ==> 오늘보다 2일 후의 날짜 출력.
▶ DATE_SUB(날짜,INTERVAL 기준값)
   날짜에서 기준값 만큼 뺸다.
※ 기준값 : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
   select date_sub(now(),interval 2 day);
   ==> 오늘보다 2일 전의 날짜와 시간 출력.
   select date_sub(curdate(), interval 2 day);
   ==> 오늘보다 2일 전의 날짜 출력.
▶ YEAR(날짜) : 날짜의 연도 출력.
   select year('20000101');
   select year(20000101);
   select year('2000-01-01');
   select year(now());
   select year(curdate());
   select year(date_add(now(),interval 2 year));
   select year(date_sub(curdate(),interval 2 year));

▶ MONTH(날짜) : 날짜의 월 출력.
   select month('20001231');
   select month(20001231);
   select month('2000-12-31');
   select month(now());
   select month(curdate());
   select month(date_add(now(),interval 2 month));
   select month(date_sub(curdate(),interval 2 month));

▶ MONTHNAME(날짜) : 날짜의 월을 영어로 출력.
   select monthname(20021221);
   select monthname('20000721');
   select monthname('2000-08-10');
   select monthname(now());
   select monthname(curdate());
   select monthname(date_add(now(),interval 17 month));
   select monthname(date_sub(curdate(),interval 11 month));

▶ DAYNAME(날짜) : 날짜의 요일일 영어로 출력.
   select dayname(20000121);
   select dayname('20010123');
   select dayname('2001-06-22');
   select dayname(now());
   select dayname(curdate());
   select dayname(date_add(now(),interval 21 day));
   select dayname(date_sub(curdate(),interval 333 day));

▶ DAYOFMONTH(날짜) : 날짜의 월별 일자 출력.
   select dayofmonth(20030112);
   select dayofmonth('20011231');
   select dayofmonth('2001-12-23');
   select dayofmonth(now());
   select dayofmonth(curdate());
   select dayofmonth(date_add(now(),interval 56 day));
   select dayofmonth(date_sub(curdate(),interval 33 day));

▶ DAYOFWEEK(날짜) : 날짜의 주별 일자 출력(월요일(0),화요일(1)...일요일(6))
   select dayofweek(20011209);
   select dayofweek('20001212');
   select dayofweek('2003-03-21');
   select dayofweek(now());
   select dayofweek(curdate());
   select dayofweek(date_add(now(),interval 23 day));
   select dayofweek(date_sub(curdate(),interval 31 day));

▶ WEEKDAY(날짜) : 날짜의 주별 일자 출력(월요일(0),화요일(1)...일요일(6))
   select weekday(20000101);
   select weekday('20030223');
   select weekday('2002-10-26');
   select weekday(now());
   select weekday(curdate());
   select weekday(date_add(now(),interval 23 day));
   select weekday(date_sub(curdate(),interval 33 day));

▶ DAYOFYEAR(날짜) : 일년을 기준으로 한 날짜까지의 날 수.
   select dayofyear(20020724);
   select dayofyear('20001231');
   select dayofyear('2002-01-01');
   select dayofyear(now());
   select dayofyear(curdate());
   select dayofyear(date_add(curdate(),interval 44 year));
   select dayofyear(date_sub(now(),interval 25 month));
   select dayofyear(date_add(now(),interval 55 day));
   select dayofyear(date_sub(curdate(),interval 777 hour));
   select dayofyear(date_add(now(),interval 999999 minute));

▶ WEEK(날짜) : 일년 중 몇 번쨰 주.
   select week(now());
   select week(date_sub(curdate(),interval 12 month));

▶ FROM_DAYS(날 수)
   --00년 00월 00일부터 날 수 만큼 경과한 날의 날짜 출력.
      ※ 날 수는 366 이상을 입력 그 이하는 무조건 '0000-00-00' 으로 출력.
   --또한 9999-12-31 [from_days(3652424)] 까지의 날짜가 출력가능 하다고는 하나
      정확히 말하면 0000-03-15 [from_days(3652499)] 까지의 날짜가 출력가능함.
   --따라서 날 수는 366 이상 3652424[3652499] 이하가 되어야 한다.
   select from_days(3652424);
   select from_days('3652499');

▶ TO_DAYS(날짜)
   --00 년 00 월 00일 부터 날짜까지의 일자 수 출력.
   --from_days와 비교해 볼 때 정확한 날짜범위는 3652424 일 수 까지임을 알 수 있다.
   select to_days('99991231');
   select to_days('0000-03-15');
   응용 예제1) 자신이 살아 온 날수
   select to_days(now()) - to_days('본인생일자');
   select to_days(now()) - to_days('1970-10-10');
   응용 예제2) 살아 온 날수를 이용하여 자신의 나이를 만으로 구하기
   select (to_days(now())-to_days('1970-10-10'))/365;
   select floor((to_days(now())-to_days('19701010'))/365);

▶ DATE_FORMAT(날짜,'형식') : 날짜를 형식에 맞게 출력

DATE타입 구분기호 설명 구분기호 설명
년도 %Y 4자리 연도 %y 2자리 년도
%M
%b
긴 월 이름 (January, ...)
짧은 월 이름(Jan, ...)
%m
%c
숫자의 월 (01...12)
숫자의 월 (1...12)
요일 %W 긴 요일 이름 (Sunday, ...) %a 짧은 요일 이름 (Sun, ...)
%D
%w
월 내에서 서수 형식의 일(1th, ...)
숫자의 요일 (0=Sunday, ...)
%d
%e
%j
월 내의 일자 (01...31)
월 내의 일자 (1...31)
일년 중의 날수 (001...366)
%l
%h
%I
12시간제의 시 (1...12)
12시간제의 시 (01...12)
12시간제의 시 (01...12)
%k
%H
12시간제의 시 (0...23)
12시간제의 시 (00...23)
%i 숫자의 분 (00...59)
%S 숫자의 초 (00...59) %s 숫자의 초 (00...59)
시간 %r 12시간제의 시간 (hh:mm:ss AM 또는 PM) %T 24시간제의 시간 (hh:mm:ss)
%U 일요일을 기준으로 한 주 (0...52) %u 월요일을 기준으로 한 주 (0...52)
기타 %% 문자 '%' %p AM 또는 PM

   ☞ 예)
   select date_format(now(),'%Y:%M:%p');
   ==> 2001:May:PM

▶ DATABASE() : 현재의 데이터베이스 이름을 출력한다.

▶ PASSWORD('문자열')
: 문자열을 암호화한다.

▶ FORMAT(숫자,소수이하자리수) : 숫자를 #,###,###.## 형식으로 출력
   --임의의 소수점자릿수를 생성한다./소숫점을 필요한 만큼 취한다.
   --소숫점을 만들어 같은 길이로 한다음 동일하게 프로그램에서 불러와서 소숫점을 버리고
      필요한 곳에 출력하는 등에 응용할 수 있다.
   select format(123,5);
   select format(123.12345600123,9);
   select format(123.123,-3);
   ※ 소숫점이하자리수가 0 이나 음수값은 해당이 안됨

'WebDevelop > MySQL' 카테고리의 다른 글

MySQL 함수  (0) 2007.09.03
DB사용자 등록 및 삭제  (0) 2007.08.22
select 시 rownum(자동으로 줄 번호 붙이기)  (0) 2007.08.22

MC Sniper - Better than yesterday

Better than yesterday - MC Sniper(MC 스나이퍼)


yeah
나 선적 없던
저 무댄 그래
풋내기 나의 목적
그 견적 없는
삶은 오기로
시적 rhyme을 출력
출생 출신
2bz 삶에
깊게 새긴 이력
노력과 실력 협력
인내력이 슬로건
난 눈먼 장님이라
오직 한길로만 걸어
걱정 아닌 격정
결정적 삶의 여정
내 설정은 열정
뜨거운 심장이 날 대변
시련 비련 미련도
날 멈출수가 없어
좀더 나답게 사납게
남과 다른 우리답게
거침없이 거칠게
현실에 맞서 싸우네
온실 속 너와는 다르게
허울의 실타래 속
이 세상과는 정반대
나 향하리
혹 사막 위
큰 오아시스를 찾기처럼
보이지 않는 길이라도
두려움은 없으니
난 발하리 또 날으리
내 무대위에 올라서
내 숨과 꿈
작은 혼과 땀을
남김없이 태우리@
아직 눈을 덜 뜬 자아
세상이라는 바다
그 속 몸을 낮춘
갓 난 창조물중에 하나
길 잃은 전략가
등 뒤를 보인 격투가
지난 19년 걸어온
나의 모습 같아
그렇게 걸었어
난 길 잃은 이방
낯선 자
자신을 찾기 위한
시험의 낙선자
핑계 속 몸을 숨긴
바람 앞에 고개 숙인
용기를 잃고 등져버린
내 바램의 배신자
나 이제 두발 딛고
세상 향해 걸어가
이 가슴으로 원했던것
내 의지를 걸어가
목적을 향한 쇄도
세상의 원안 괴도
그 속에 몸을 싣고
그 무엇도 꺽는다
2S신에 선택
누구도 절대 막지마
2bz의 맘의 선택
경고를 울려 마지막
어제를 등졌대도
어제를 다시 원한대도
나 새로운 발을 딛고
내일을 향해 걷는다
since 1983
날 녹인 내 신세는
긴급 상황
그래 난 쉴세없이
뛰었지만
무자비 했던 많은 날이
내 귀를 스쳐
가늘은 내 팔을 겨눠
내안에 얼어붙은
언어를 녹여내어
정면으로 맞섰고
의욕만 앞선 내게
현실이 욕만 앞서도
기어코 역경들을 밟아
발판삼아 나는
어제보다 더 나은
오늘을 다짐해
코 묻은 연습장속에
내 한의 잉크색을
더 짙게
yeah 2bz 투지 속에
난 꿈을 꿨지
내 심장 박동 소리에
작두를 탔지
세상의 난시에
내 모습과
내 시가 먹구름에
드리워도
난 절대 태양이
날 바라보고 있음에
의심한적 없어
yo
이 확성기로 악써보네
더 빡세게 나 낙서들을
다 싹쓸이 한 후
당신의 가슴 안에 외쳐
이 썩은 물의
흐름을 증명하여
나는 내일도 악역이다
높은 곳으로 higher
yeah king of DJ
DJ R2 2bz
절대 멈추지 않아
마지막 고지에
깃발을 꽂아
never don't stop
스나이퍼
BK
ROOM9
배치기
Outsider
K. T. C. OB
Let's get it on
yo
가식과 겉멋뿐인 껍데기
이미 지나버린 시기
패기는 사라져버린
준비되지 않은 시인
그렇게 기회는
아무 상관없는듯
날 맴돌며
날 흔들고 있었지
무너지는 나를
막기 위해
공사판을 전전하던 그때
화려한 조명아래
밝게 빛나던
형제를 위해
거칠어진 손으로
힘껏 난 박수를 쳤네
이젠 어제보단
나을거라는 믿음에
떠오르는 오늘을 보며
내손에 펜을 꽉 쥐고
병든 팔을 도려내
죽을듯한 고통은
얼룩진 추억으로 견뎌내
이를 악물고
내안의 전쟁 이겨내
나를 위해
보다 냉정하게
절대 쓰러질순 없기에
어제의 상처는
오늘의 기쁨으로 발전해
멈출순 없네
보다 나은 내일을 위해
나는 순수혈통
전투민족의
마지막 생존자
100% 고집불통
내 길을 걷는
삶의 개척자
아무리 죽고 싶어도
죽지 못하는 생은
죽음의 고비를 넘기면
언제나 자신을
몇배로 단단히 성장시켜
자 미래로 향하는
열쇠를 짊어진
내 눈과 두 귀는
변함없이
나를 높은 곳으로
이끌어가
나비처럼 날아서
벌처럼 쏴
난 끝없이 고개를 숙여
인내와 노력을
가슴에 새겨
고통은 성장의 밑거름
난 언제나
자신을 믿거든
굶주림으로
한길만을 바라보고
달려왔던 지난날을
되새기며
끊임없이 노래하는
어제보다 발전하는
내일처럼 빛을 향해
미친듯이 달려가다
쓰러지면 어때
부러지면 어때
구겨지면 어때
뭐 때문에 망설이니
무너지면 어때
날을 갈아 거침없이
칼을 뽑아
다가오는 적을 향해
목을 베고
확실하게 숨을 끊어라
내 적이라면 칼을 맞대
형제라면 살을 맞대
너 아니면 내가 죽고
나 아니면 니가 죽는
빌어먹을 전쟁은
파도와도 같아
박차고 일어나서
갈때까지 가는 거야
떠나려면 떠나가라
있는 힘껏 밀어붙여
머리부터 뼛속까지
계속해서 소리 질러 아
오늘부터 내 이름을
가슴속에 되새기거라@
yo
충청북도 제천 꼬맹이
나는 전투개미
깡다구에 X알 두쪽뿐인
난 칼든 맹인
하루를 벌어
하루를 살던
나의 어제는
비틀거리는 팽이
인생이 젖동냥
걸인과 같애
위태 위태 혼수상태
저기 발끝 밑에
라면 한봉에
하루를 살던 그때
습기 가득한
지하 방에서
훗날을 도모한 나는
증오와 분노와
깊은 밤을 함께 했네
꿈을 이루기 위해
기회는 누구에게나
다가온다
얼마나 절실하니
너의 꿈과 미래를 위해
무엇을 포기했니
패기와 용기
어금니 꽉 문
너의 오기는
대체 네 삶
어디에 투자됐니
batter than yesterday
필요하다면 자지 않고
필요하다면 쓰지 않으며
게릴라전의 게바라처럼
욕심과 사심에
총을 겨누며
나 초년의 꿈을 위해
달림에 여념이 없네
여기서 멈추지 않고
끊임없이 달려
달리고 달려
지쳐 쓰려져
모든걸 잃어 빌어먹어도
후회할일은 없다
세계의 지붕
에베레스트를
정복하듯 올라
2bz의 4번 타자
스나이퍼의 도약
독약을 거침없이
마시는 줄리엣
그녀와 같은
사람이 많아
나의 주위엔
어제보다 나은 오늘
좀 더 나은 미래를 위해
회계하는 창녀마냥
마녀사냥을 떠나
yeah
2bz follow me now
우리가 왜 우리냐
how bad do you want it
yeah
탁 탁 36
내 한의 시를 써
BK yo 2bz의 투지
ROOM9
내 숨과 꿈을 다 실어
outsider
우리는 변함없이
믿음으로 맞서 싸워
zenio7
이건 마지막 경고
K. T. C. OB
king of DJ
sniper sound
sniper sound

'Music' 카테고리의 다른 글

11살 소녀의 롤링 인 더 딥  (0) 2015.04.30

간단한 페이징 처리

<?php
$posts = 1000;      // 전체 게시물 개수
$per_page = 20;     // 한 페이지 나타낼 게시물 개수
$cur_page = 15;     // 현재 선택한 페이지 번호, $_GET['page']
$pps = 10;          // 출력할 페이지 번호 개수

// $pps는 짝수이어야 한다.
if ($pps % 2 != 0) $pps++;

// 총 페이지 수
$npages = ($posts / $per_page) + (($posts % $per_page != 0) ? 1 : 0);

// 총 페이지 수가 1이면 적절하게 처리
if ($npages < 2) return;

$page1 = $cur_page - $pps / 2;
$page2 = $cur_page + $pps / 2;

if ($page1 < 1) {
    $page2 -= $page1;
    $page1 = 1;
}
elseif ($page2 > $npages) {
    $page1 -= ($page2 - $npages);
    $page2 = $npages;
}

if ($page1 < 1) 
    $page1 = 1;

if ($page2 > $npages)
    $page2 = $npages;

$pageURL = array();

// 처음 페이지 출력
if ($page1 > 1) {
    echo "처음 ";
}

// 이전 페이지 출력
if ($cur_page > 1) {
    printf("이전 ", $cur_page - 1);
}

for ($i = $page1; $i <= $page2; $i++) {
    $pageURL[] = ($i == $cur_page) ? $i : "[$i]";
}

echo implode(' ', $pageURL);

// 다음 페이지 출력
if ($cur_page < $npages) {
    printf("다음", $cur_page + 1);
}

// 마지막 페이지 출력
if ($page2 < $npages) {
    printf("마지막", $npages);
}
?>

'WebDevelop > PHP' 카테고리의 다른 글

PHP란 무엇인가...  (0) 2007.09.17
XML 생성 Class  (0) 2007.08.19
history.back()해도 폼값 남아 있기  (0) 2007.08.18
Return top