[김성민]님이 남기신 글:
>안녕하세요.
>
>혼자 끙끙끙끙 하다가 도저히 이해가 안가서요.
>리눅스는 아니지만 아실것 같아서..
>
>게시판 만들기를 하고 있는데 작성일로 부터 2일간 new 표시를
하려하는데 제어방법이 안됩니다.
>
>## db ##
>CREATE TABLE free (
> id int(11) NOT NULL auto_increment,
> name varchar(15) default NULL,
> email varchar(50) default NULL,
> passwd varchar(12) default NULL,
> subject varchar(100) default NULL,
> body text,
> insert_date datetime default NULL,
> modify_use int(1) default '0',
> modify_date datetime default NULL,
> count int(11) default NULL,
> ip varchar(20) default NULL,
> file varchar(50) default NULL,
> PRIMARY KEY (id)
>) TYPE=MyISAM;
>
>## 입력 ##
>$query = "insert into $db_table values
('','$name','$email','$passwd','$subject','$body',now(),'','','0','$ip','$file')&quo
t;;
>$result = mysql_query($query);
>
>## 리스트 출력 ##
>$query = "select id, name, subject, insert_date, count from $db_table order by
id DESC";
>$result = mysql_query($query);
>$row = mysql_fetch_array($result);
>
>
>날짜 출력 : $row[insert_date];
>
>제목 : $row[subject];
>
>여기서 제목에 new 를 붙일려고 하는데요.
>php관련 사이트를 보면 오늘날짜와 비교한다.... 이거는
알겠습니다.
>
>$today = date("Y-m-d H:i:s", time());
>
>if($row[insert_date]==$today){ //오늘날짜와 같으면.
>$icon=new.gif;
>}
>이런식이 된다는거 까지는 알겠는데요..
>
>24시간 동안 표시한다고 하면?
>
>(1)작성날짜(저장날짜)
2003-03-25 00:00:00
>(2)현재날짜 2003-03-26 00:00:00
>
>이것을 어떻게 계산하여야 하는지에서 막히고
있습니다.
>
>$today = date("YmdHis", time()); 와 같이 다다닥 붙여서 숫자로
해보기도 하고 별짓을 다하는구만 이해가 안가고
있습니다.
>
>현재 커피믹스 1곽, 담배 2갑째 들어갑니다.^^
>
>예제가 있으면 좋은데 다른 사이트들 게시물 보면 죄다 뭐뭐를
어떻게 해라.. 이렇게만 있어서 뭘 알아야 해먹죠...
우선 현재 시각과 DB 의 날짜를 비교해야 하는데
둘다 정수형이 아닌 문자열이어서 비교하기가 좀 까다롭게
되어 있군요.
즉 문자형을 정수형으로 변환해서 서로 비교해야 합니다.
현재 DB의 자료형은 datatime 즉 실제로는 문자형입니다.
따라서 DB에 추가할때 아예 정수형으로 집어넣든지
문자형을 정수형으로 변환해야 해야합니다.
$time[base] = time() - (86400*2); // 현재 unixtimestamp - 2일(비교기준시각)
...
// loop 문 시작
...
$time[insert] = strtotime($row[insert_date]); // to unixtimestamp
if($time[base] < $time[insert]) {
$icon = 'new.gif';
}
...
// loop 문 끝
이와 같이 날짜같은 자료는 비교하는 경우가 많으므로
insert_date datetime default NULL,
보다는
insert_date int(10) default '0' NOT NULL,
이렇게 정수형으로 DB에 넣어주는 것이 호환성면에서
좋습니다.
(물론 어떤 DB에서는 비교하는 경우가 없다면
이렇게 할 필요는 없습니다.)
이렇게 DB에 정수형으로 집어넣으면
굳지 strtotime() 함수를 쓰지 않아도 되겠죠..
>
>좀 부탁 드려도 될까여???
>
>
>그리구, 어제 저녁에 서점에 php 기초책 사러 갔다가 어떤
사람이 리눅스 책이 어떤게 좋으냐고 주인에게 묻는데 주인이
영진.. 뭐를 주더군요.
>그 책을 제가 산이님 책 보기전에 처음에 샀던건데 내용이
듬성듬성해서 보나마나거든요.
그래서 진영대를 봤는데 이번에 산이님 개정판이 1권 남아
있길래 과감히 이거 보라고 했습죠.
>실무에 참 도움 된다... 느낀점을 살짝 말했더니만 바로 그거
사더군요.
>내가 보는 책, 그리고 내가 도움 받는 사이트 운영자 책이
서점에 보일때 이상하게 흐뭇해 지더군요.
아 그런가요?
(책을 쓰고 난후 저한데 돌아온것은 엄청난 질문과 간혹
알아주는 분,
판매량만큼 경제적인 이익이 있을 것이라고 대부분
독자분들은
그렇게 생각하시겠지만
절대 그렇지 않습니다.
저 같은 경우 예전도 지금도 거지입니다... 하하)
(판매량만큼 금전적인 추가부분은 없고 저한테는 질문만
쏟아집니다.
...하하)
어째튼 고맙습니다.
|